home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / INTER40A.ZIP;1 / INTERRUP.A < prev    next >
Encoding:
Text File  |  1994-04-03  |  313.4 KB  |  8,249 lines

  1. Interrupt List        Release 40            Last change 4/3/94
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a trio of
  5. archives named INTER40A through INTER40C (preferably the original authenticated
  6. PKZIP archives):
  7.     INTERRUP.1ST    the read-me file, containing credits, availability info
  8.     INTERRUP.A    INT 00 through INT 13      \
  9.     INTERRUP.B    INT 14 through INT 15/7F   \
  10.     INTERRUP.C    INT 15/80 through INT 19    \  
  11.     INTERRUP.D    INT 1A through INT 21/44     \     total 1489 pages at
  12.     INTERRUP.E    INT 21/45 through INT 21/BF   \  60 lines per page,
  13.     INTERRUP.F    INT 21/C0 through INT 2C       > 1594 with INTPRINT -p
  14.     INTERRUP.G    INT 2D through INT 2F/7F      /  (6281 entries)
  15.     INTERRUP.H    INT 2F/80 through INT 2F/FF  /
  16.     INTERRUP.I    INT 30 through INT 60        /
  17.     INTERRUP.J    INT 61 through INT 69       /
  18.     INTERRUP.K    INT 6A through INT FF      /
  19.     INTERRUP.PRI    a brief introduction to interrupts
  20.     INTPRINT.COM    a simple formatter that also generates a list summary
  21.     INTPRINT.DOC    instructions for INTPRINT
  22.     86BUGS.LST    a listing of CPU bugs and undocumented features
  23.     CMOS.LST    a description of the CMOS RAM data bytes
  24.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  25.     MEMORY.LST    format of the BIOS data area
  26.     PORTS.LST    a listing of I/O ports
  27.     COMBINE.BAT    combine the pieces of the list into a single file
  28. The following files should be distributed in an archive called INTER40D:
  29.     INT.COM        invoke interrupts from commandline
  30.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  31.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  32.     INT2QH.*    program to convert list into QuickHelp database
  33.     INTERVUE.EXE    indexed interrupt list browser
  34.     INTHELP.*    convert list into TurboPower GUIDE database
  35.     INTLIST.E    Epsilon extension for handling list
  36.     INTLIST.ICO    Windows icon for INTERVUE
  37.     INTPRINT.C    source code for INTPRINT
  38.     RB2NG.*        convert list into Norton Guides database
  39. --------!---CONTACT_INFO---------------------
  40. If you notice any mistakes or omissions, please let me know!  It is only with
  41. YOUR help that the list can continue to grow at the current rate.  Please send
  42. all changes to me rather than distributing a modified version of the list.
  43.  
  44. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  45. that they have already been addressed.
  46.  
  47.      Ralf Brown
  48.  
  49. Internet: ralf@telerama.lm.com
  50. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  51. FIDO: Ralf Brown 1:129/26.1
  52.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  53.     unless you address it to me)
  54. CIS:  >INTERNET:ralf@telerama.lm.com
  55.  
  56. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  57. because of bad return paths.  If you don't get a response from me within a
  58. reasonable period of time, send it again with a better return path (starting at
  59. harvard or ucbvax for UUCP, from the Internet for others).
  60. --------!------------------------------------
  61. See INTERRUP.1ST for the key to system abbreviations and a list of the
  62. trademarks mentioned here.
  63. --------!---DISCLAIMER-----------------------
  64. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  65. contained in this list to the best of my ability, but I cannot be held
  66. responsible for any problems caused by use or misuse of the information,
  67. especially for those functions not officially documented.  If it is marked
  68. "internal" or undocumented, you should check it carefully to make sure it
  69. works the same way in your version of the software (and please let me know
  70. whether or not it works the same way).    Information marked with "???" is
  71. known to be incomplete or guesswork.
  72. --------!---FLAGS----------------------------
  73. The use of -> instead of = signifies that the indicated register or register
  74. pair contains a pointer to the specified item, rather than the item itself.
  75. One or more letters may follow the interrupt number; they have the following
  76. meanings:  U - undocumented function, u - partially documented function,
  77. P - available only in protected mode, R - available only in real or V86 mode,
  78. C - callout or callback (usually hooked rather than called),
  79. O - obsolete (no longer present in current versions)
  80. --------!---CATEGORIES-----------------------
  81. The ninth column of the divider line preceding an entry usually contains a
  82. classification code (the entry has not been classified if that character is
  83. a dash).  The codes currently in use are:
  84.     A - applications, a - access software (screen readers, etc),
  85.     B - BIOS, b - vendor-specific BIOS extensions,
  86.     C - CPU-generated, c - caches/spoolers,
  87.     D - DOS kernel, d - disk I/O enhancements,
  88.     E - DOS extenders, e - electronic mail, F - FAX,
  89.     f - file manipulation, G - debuggers/debugging tools, g - games,
  90.     H - hardware, h - vendor-specific hardware,
  91.     I - IBM workstation/terminal emulators, i - system info/monitoring
  92.     J - Japanese, j - joke programs,
  93.     K - keyboard enhancers, k - file compression,
  94.     l - shells/command interpreters,
  95.     M - mouse/pointing device, m - memory management,
  96.     N - network, n - non-traditional input devices,
  97.     O - other operating systems,
  98.     P - printer enhancements, p - power management,
  99.     Q - DESQview/TopView and Quarterdeck programs,
  100.     R - remote control/file access, r - runtime support,
  101.     S - serial I/O, s - sound/speech,
  102.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  103.     U - resident utilities, u - emulators,
  104.     V - video, v - virus/antivirus,
  105.     W - MS Windows, X - expansion bus BIOSes,
  106.     y - security, * - reserved (and not otherwise classified)
  107. --------C-00---------------------------------
  108. INT 00 - CPU-generated - DIVIDE ERROR
  109. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  110.       quotient overflows the result register; DX and AX will be unchanged.
  111. Notes:    on an 8086/8088, the return address points to the following instruction
  112.     on an 80286+, the return address points to the divide instruction
  113.     an 8086/8088 will generate this interrupt if the result of a division
  114.       is 80h (byte) or 8000h (word)
  115. SeeAlso: INT 04
  116. --------G-00---------------------------------
  117. INT 00 - Zenith - ROM DEBUGGER
  118. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  119.       pressing Ctrl-Alt-Ins on booting.
  120. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  121.       its original ROM BIOS value in order to invoke the debugger once DOS
  122.       loads
  123. SeeAlso: INT 03"Columbia"
  124. --------C-01---------------------------------
  125. INT 01 - CPU-generated - SINGLE STEP
  126. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  127.       cleared on invoking the single-step interrupt handler
  128. Notes:    interrupts are prioritized such that external interrupts are invoked
  129.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  130.       first instruction of the handler executes
  131.     used by debuggers for single-instruction execution tracing, such as
  132.       MS-DOS DEBUG's T command
  133. SeeAlso: INT 03
  134. --------C-01---------------------------------
  135. INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  136. Desc:    generated by the CPU on various occurrences which may be of interest
  137.       to a debugger program
  138. Note:    events which may trigger the interrupt:
  139.       Instruction address breakpoint fault - will return to execute inst
  140.       Data address breakpoint trap - will return to following instruction
  141.       General detect fault, debug registers in use
  142.       Task-switch breakpoint trap
  143.       undocumented 386/486 opcode F1h - will return to following instruc
  144. SeeAlso: INT 03
  145. --------H-02---------------------------------
  146. INT 02 - external hardware - NON-MASKABLE INTERRUPT
  147. Desc:    generated by the CPU when the input to the NMI pin is asserted
  148. Notes:    return address points to start of interrupted instruction on 80286+
  149.     on the 80286+, further NMIs are disabled until the next IRET
  150.       instruction, but one additional NMI is remembered by the hardware
  151.       and will be serviced after the IRET instruction reenables NMIs
  152.     maskable interrupts may interrupt the NMI handler if interrupts are
  153.       enabled
  154.     although the Intel documentation states that this interrupt is
  155.       typically used for power-failure procedures, it has many other uses
  156.       on IBM-compatible machines:
  157.         Memory parity error: all except Jr, CONV, and some machines
  158.                 without memory parity
  159.         Breakout switch on hardware debuggers
  160.         Coprocessor interrupt: all except Jr and CONV
  161.         Keyboard interrupt: Jr, CONV
  162.         I/O channel check: CONV, PS50+
  163.         Disk-controller power-on request: CONV
  164.         System suspend: CONV
  165.         Real-time clock: CONV
  166.         System watch-dog timer, time-out interrupt: PS50+
  167.         DMA timer time-out interrupt: PS50+
  168.         Low battery: HP 95LX
  169.         Module pulled: HP 95LX
  170. --------C-03---------------------------------
  171. INT 03 - CPU-generated - BREAKPOINT
  172. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  173. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  174.       command
  175.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  176.     return address points to byte following the breakpoint instruction
  177. SeeAlso: INT 01
  178. --------G-03---------------------------------
  179. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  180. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  181.       to pressing Esc on booting.
  182. SeeAlso: INT 00"Zenith",INT 03"Realia"
  183. --------G-03---------------------------------
  184. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  185. Note:    Realia COBOL checks for a signature eight bytes prior to the interrupt
  186.       handler when it starts up
  187. BUG:    if the offset of the INT 03 vector is less than 8, the compiler and
  188.       all executables generated by it will crash the system
  189. SeeAlso: INT 03"Columbia"
  190. --------G-030910-----------------------------
  191. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  192.     AX = 0910h
  193.     SI = magic value 4647h ('FG')
  194.     DI = magic value 4A4Dh ('JM')
  195.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  196. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  197. --------G-030911-----------------------------
  198. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  199.     AX = 0911h
  200.     SI = magic value 4647h ('FG')
  201.     DI = magic value 4A4Dh ('JM')
  202.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  203. --------G-030912-----------------------------
  204. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  205.     AX = 0912h
  206.     SI = magic value 4647h ('FG')
  207.     DI = magic value 4A4Dh ('JM')
  208. Return: BH = entry number of last breakpoint set
  209.     BL = type of last breakpoint set
  210.         00h BPM (breakpoint register types)
  211.         01h I/O
  212.         02h INTerrupt
  213.         03h BPX (INT 03h-style breakpoint)
  214.         04h reserved
  215.         05h range
  216.     DH = entry number of last breakpoint to be triggered
  217.     DL = type of last triggered breakpoint (see above)
  218. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  219. SeeAlso: AX=0913h,AX=0914h
  220. --------G-030913-----------------------------
  221. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  222.     AX = 0913h
  223.     SI = magic value 4647h ('FG')
  224.     DI = magic value 4A4Dh ('JM')
  225.     DS:DX -> breakpoint structure (see below)
  226. Return: AX = status
  227.         00h successful
  228.         BX = breakpoint number
  229.         03h breakpoint table full
  230.         06h memory limit error
  231.         07h I/O limit error
  232.         09h range limit error
  233.         16h duplicate breakpoint
  234. SeeAlso: AX=0912h,AX=0914h
  235.  
  236. Format of breakpoint structure:
  237. Offset    Size    Description
  238.  00h    BYTE    breakpoint type (see below)
  239.  01h    DWORD    breakpoint address 1
  240.         (lower range limit for memory BPs,
  241.         interrupt number for interrupt BPs,
  242.         address of BP for execution BPs,
  243.         I/O address (only word)    for I/O BPs)
  244.  05h    DWORD    breakpoint address 2
  245.         (upper range limit for memory BPs,
  246.         optional value to check for for interrupt BPs,
  247.         overlay number (0 = root) for execution BPs)
  248.  09h    DWORD    breakpoint address 3
  249.  0Dh    BYTE    breakpoint mode 1 (see below)
  250.         (for interrupt BPs = register to check
  251.              00h  no value checking
  252.              01h  check AL
  253.              02h  check AH
  254.              03h  check AX)
  255.  0Eh    BYTE    breakpoint mode 2 (see below)
  256.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  257.  10h    BYTE    breakpoint pass count before program stop
  258.  11h    BYTE    breakpoint state
  259. Note:    all unused fields should contain zeros
  260.  
  261. Values for breakpoint type:
  262.  00h    memory location
  263.  01h    memory range
  264.  03h    I/O
  265.  04h    interrupt
  266.  05h    execution break
  267.  
  268. Values for breakpoint mode:
  269.  01h    read
  270.  02h    write
  271.  04h    execution
  272. --------G-030914-----------------------------
  273. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  274.     AX = 0914h
  275.     SI = magic value 4647h ('FG')
  276.     DI = magic value 4A4Dh ('JM')
  277.     BX = breakpoint number (returned by AX=0913h)
  278. Return: BX = ???
  279. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  280. SeeAlso: AX=0912h,AX=0913h
  281. --------C-04---------------------------------
  282. INT 04 - CPU-generated - INTO DETECTED OVERFLOW
  283. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  284.       is set; otherwise, INTO is effectively a NOP
  285. Note:    may be used for convenient overflow testing (to prevent errors from
  286.       propagating) instead of JO or a JNO/JMP combination
  287. SeeAlso: INT 00
  288. --------B-05---------------------------------
  289. INT 05 - PRINT SCREEN
  290. Desc:    dump the current text screen to the first printer
  291. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  292.       may be invoked directly by applications
  293.     byte at 0050h:0000h contains status used by default handler
  294.       00h not active
  295.       01h PrtSc in progress
  296.       FFh last PrtSc encountered error
  297.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  298. SeeAlso: INT 10/AH=12h/BL=20h
  299. --------C-05---------------------------------
  300. INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  301. Desc:    generated by BOUND instruction when the value to be tested is less than
  302.       the indicated lower bound or greater than the indicated upper bound.
  303. Note:    returning from this interrupt re-executes the failing BOUND instruction
  304. --------P-05454A-----------------------------
  305. INT 05 U - PSPS v2.01 - EJECT PAGE
  306.     AX = 454Ah ('EJ')
  307. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  308.       Technologies
  309. Note:    sends a ^D to the current printer
  310. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  311. --------P-054E57-----------------------------
  312. INT 05 U - PSPS v2.01 - SET PARAMETERS
  313.     AX = 4E57h ('NW')
  314.     ES:SI -> 11-byte buffer containing new settings
  315. Return: buffer filled
  316. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  317. --------P-055053-----------------------------
  318. INT 05 U - PSPS v2.01 - GET PARAMETERS
  319.     AX = 5053h ('PS')
  320.     ES:SI -> 11-byte buffer for settings
  321. Return: buffer filled
  322. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  323. --------P-05554E-----------------------------
  324. INT 05 U - PSPS v2.01 - UNINSTALL
  325.     AX = 554Eh ('UN')
  326. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  327.       Technologies
  328. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  329. --------C-06---------------------------------
  330. INT 06 - CPU-generated (80286+) - INVALID OPCODE
  331. Desc:    this interrupt is generated when the CPU attempts to execute an
  332.       invalid opcode (most protected-mode instructions are considered
  333.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  334.       which specifies a register rather than a memory address
  335. Notes:    return address points to beginning of invalid instruction
  336.     with proper programming, this interrupt may be used to emulate
  337.       instructions which do not exist; many 386 BIOSes emulate the 80286
  338.       undocumented LOADALL instruction which was removed from the 80386+
  339.     generated by the 80386+ when the LOCK prefix is used with instructions
  340.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  341.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  342.       not accessing memory.
  343. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  344. --------b-06---------------------------------
  345. INT 06 C - HP 95LX - SLEEP/WAKEUP
  346. Desc:    this interrupt is called just before going into light or deep
  347.       (shutdown) sleep and just after returning from light or deep sleep
  348. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  349. --------C-07---------------------------------
  350. INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  351. Desc:    this interrupt is automatically called if a coprocessor instruction is
  352.       encountered when no coprocessor is installed
  353. Note:    can be used to emulate a numeric coprocessor in software
  354. SeeAlso: INT 09"MATH UNIT PROTECTION"
  355. --------H-08---------------------------------
  356. INT 08 - IRQ0 - SYSTEM TIMER
  357. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  358.       this interrupt is used to keep the time-of-day clock updated
  359. Notes:    programs which need to be invoked regularly should use INT 1C unless
  360.       they need to reprogram the timer while still keeping the time-of-day
  361.       clock running at the proper rate
  362.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  363.     may be masked by setting bit 0 on I/O port 21h
  364. SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
  365. SeeAlso: INT D8"Screen Thief"
  366. --------C-08---------------------------------
  367. INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  368. Desc:    called when multiple exceptions occur on one instruction, or an
  369.       exception occurs in an exception handler
  370. Notes:    called in protected mode if an interrupt above the defined limit of
  371.       the interrupt vector table occurs
  372.     return address points at beginning of instruction with errors or the
  373.       beginning of the instruction which was about to execute when the
  374.       external interrupt caused the exception
  375.     if an exception occurs in the double fault handler, the CPU goes into
  376.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  377.       this "triple fault" is a faster way of returning to real mode on
  378.       many 80286 machines than the standard keyboard controller reset
  379. --------H-09---------------------------------
  380. INT 09 - IRQ1 - KEYBOARD DATA READY
  381. Desc:    this interrupt is generated when data is received from the keyboard.
  382.       This is normally a scan code (from either a keypress *or* a key
  383.       release), but may also be an ACK or NAK of a command on AT-class
  384.       keyboards.
  385. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  386.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  387.       INT 15/AH=4Fh after reading the scan code from the keyboard and
  388.       before further processing; all further processing uses the scan
  389.       code returned from INT 15/AH=4Fh
  390.     the default interrupt handler is at F000h:E987h in 100%-compatible
  391.       BIOSes
  392.     the interrupt handler performs the following actions for certain
  393.       special keystrokes:
  394.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  395.              invoke INT 1B, and set flag at 0040h:0071h
  396.         SysRq     invoke INT 15/AH=85h
  397.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  398.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  399.                destination of the jump at that address)
  400.         Shift-PrtSc     invoke INT 05
  401.     DRDOS hooks this interrupt to control the cursor shape (underscore/
  402.       half block) for overwrite/insert mode
  403.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  404.       control whether Ctrl-Alt-Del reboots the current session or the
  405.       entire system
  406. SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
  407. SeeAlso: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  408.  
  409. Values for scan code:
  410.  01h    Esc         31h    N
  411.  02h    1 !         32h    M
  412.  03h    2 @         33h    , <         63h    F16
  413.  04h    3 #         34h    . >         64h    F17
  414.  05h    4 $         35h    / ?         65h    F18
  415.  06h    5 %         36h    Right Shift     66h    F19
  416.  07h    6 ^         37h    Grey*         67h    F20
  417.  08h    7 &         38h    Alt         68h    F21
  418.  09h    8 *         39h    SpaceBar     69h    F22
  419.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  420.  0Bh    0 )         3Bh    F1         6Bh    F24
  421.  0Ch    - _         3Ch    F2         6Ch    --
  422.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  423.  0Eh    Backspace     3Eh    F4
  424.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  425.  10h    Q         40h    F6
  426.  11h    W         41h    F7
  427.  12h    E         42h    F8         72h    CrSel
  428.  13h    R         43h    F9
  429.  14h    T         44h    F10         74h    ExSel
  430.  15h    Y         45h    NumLock         75h    --
  431.  16h    U         46h    ScrollLock     76h    Clear
  432.  17h    I         47h    Home
  433.  18h    O         48h    UpArrow
  434.  19h    P         49h    PgUp
  435.  1Ah    [ {         4Ah    Grey-
  436.  1Bh    ] }         4Bh    LeftArrow
  437.  1Ch    Enter         4Ch    Keypad 5
  438.  1Dh    Ctrl         4Dh    RightArrow
  439.  1Eh    A         4Eh    Grey+
  440.  1Fh    S         4Fh    End
  441.  20h    D         50h    DownArrow     E0h    prefix code
  442.  21h    F         51h    PgDn         E1h    prefix code
  443.  22h    G         52h    Ins         FAh    ACK
  444.  23h    H         53h    Del         FEh    RESEND
  445.  24h    J         54h    SysRq         FFh    kbd error/buffer full
  446.  25h    K
  447.  26h    L         56h    left \| (102-key)
  448.  27h    ; :         57h    F11
  449.  28h    ' "         58h    F12
  450.  29h    ` ~
  451.  2Ah    Left Shift     5Ah    PA1
  452.  2Bh    \ |         5Bh    F13
  453.  2Ch    Z         5Ch    F14
  454.  2Dh    X         5Dh    F15
  455.  2Eh    C
  456.  2Fh    V
  457.  30h    B
  458. Note:    scan codes 56h-E1h are only available on the extended (101/102-key)
  459.       keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
  460.       are only available on the 122-key keyboard
  461. --------C-09---------------------------------
  462. INT 09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  463. Desc:    called if the coprocessor attempts to access memory outside a segment
  464.       boundary; it may occur at an arbitrary time after the coprocessor
  465.       instruction was issued
  466. Note:    until the condition is cleared or the coprocessor is reset, the only
  467.       coprocessor instruction which may be used is FNINIT; WAIT or other
  468.       coprocessor instructions will cause a deadlock because the
  469.       coprocessor is still busy waiting for data
  470. SeeAlso: INT 07"CPU"
  471. --------*-09---------------------------------
  472. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  473. Note:    this exception has been moved to INT 0D
  474. SeeAlso: INT 09"MATH",INT 0D
  475. --------H-0A---------------------------------
  476. INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  477. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  478.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  479.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  480.       connects to the slave 8259.  The BIOS redirects the interrupt for
  481.       IRQ9 back here.
  482.     under DESQview, only the INT 15h vector and BASIC segment address (the
  483.       word at 0000h:0510h) may be assumed to be valid for the handler's
  484.       process
  485.     many VGA boards do not implement the vertical retrace interrupt,
  486.       including the IBM VGA Adapter where the traces are either cut or
  487.       removed
  488. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  489. --------H-0A---------------------------------
  490. INT 0A - IRQ2 - Tandy 1000-series HARD DISK
  491. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  492.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  493.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  494.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  495.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  496.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  497.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  498.       interrupt use IRQ5 for vertical retrace.
  499. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  500. --------H-0A---------------------------------
  501. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  502. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  503.       a jumper-selectable IRQ, but software and hardware generally defaults
  504.       to IRQ2
  505. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  506. --------C-0A---------------------------------
  507. INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  508. Desc:    automatically called during a task switch if the new TSS specified by
  509.       the task gate is invalid for any of the following reasons:
  510.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  511.         LDT selector invalid or segment not present
  512.         null SS selector, or SS selector outside LDT/GDT limit
  513.         stack segment is read-only
  514.         stack segment DPL differs from new CPL, or RPL <> CPL
  515.         CS selector is outside LDT/GDT limit or not code
  516.         non-conforming code segment's DPL differs from CPL
  517.         conforming code segment's DPL > CPL
  518.         DS/ES selectors outside LDT/GDT limit or not readable segments
  519. Note:    the handler must use a task gate in order to have a valid TSS under
  520.       which to execute; it must also reset the busy bit in the new TSS
  521. SeeAlso: INT 0B"CPU"
  522. --------H-0B---------------------------------
  523. INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  524. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  525.       UART has been programmed to generate interrupts
  526. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  527.       alternate
  528.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  529.       shares this interrupt
  530.     may be masked by setting bit 3 on I/O port 21h
  531. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  532. --------C-0B---------------------------------
  533. INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
  534. Desc:    generated when loading a segment register if the segment descriptor
  535.       indicates that the segment is not currently in memory, unless the
  536.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  537.       INT 0C"CPU") needed by a task switch
  538. Note:    may be used to implement virtual memory by loading in segments as they
  539.       are accessed, clearing the "not present" bit after loading
  540. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  541. --------h-0B---------------------------------
  542. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  543. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  544. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  545. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  546. --------H-0C---------------------------------
  547. INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  548. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  549.       UART has been programmed to generate interrupts
  550. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  551.       may be left dangling by other programs written with the same version
  552.       of compiled BASIC
  553. Notes:    on many PC's, COM3 shares this interrupt
  554.     may be masked by setting bit 4 on I/O port 21h
  555. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  556. --------C-0C---------------------------------
  557. INT 0C - CPU-generated (80286+) - STACK FAULT
  558. Desc:    this interrupt is generated in protected mode on a stack overflow or
  559.       underflow, or if an inter-level transition or task switch references
  560.       a stack segment marked "not present"; it is generated in real mode
  561.       on accessing a word operand at SS:FFFFh
  562. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  563.       PC AT and compatibles, external circuitry generates a reset on
  564.       shutdown.
  565. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  566. --------I-0C---------------------------------
  567. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  568. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  569.       whose entry point address is offset 100h in the segment pointed at
  570.       by this vector
  571.  
  572. Call the API entry point with
  573.     AH = function
  574.         03h update screen
  575.         05h select next session
  576.         AL = session number (00h-03h)
  577.         Return: AL = session type code
  578.                 00h not active
  579.                 01h display session
  580.                 02h printer session
  581.                 FEh invalid session number
  582.             DS = requested session's data segment (0 if not active)
  583. Return: ???
  584.  
  585. Format of emulator's data area (offset from interrupt handler's segment):
  586. Offset    Size    Description
  587. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  588.         last zerod
  589. 13Fh    BYTE    bit flags for status line indicators turned off since this
  590.         byte last set to FFh
  591. 140h    WORD    offset of EBCDIC to ASCII translation
  592. 146h    WORD    offset of EBCDIC screen buffer
  593. 148h    WORD    offset of EC (engineering change) level signature
  594. 150h    BYTE    "KEYI"
  595. 151h    BYTE    5250 key scan code to be sent to remote
  596. 15Bh    BYTE    "SYSAV"
  597. 15Dh    BYTE    5250 cursor column
  598. 15Eh    BYTE    5250 cursor row
  599. 167h    BYTE    "DVCTAD"
  600. 178h    BYTE    "FLAGS"
  601. 184h    BYTE    "SESSNOAD"
  602. 193h    BYTE    "STNAD"
  603. 198h    BYTE    "NSDS"
  604. --------H-0D---------------------------------
  605. INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  606. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  607.       word at 0000h:0510h) may be assumed to be valid for the handler's
  608.       process
  609.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  610.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  611.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  612.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  613.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  614.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  615.       interrupt use IRQ5 for vertical retrace.
  616.     may be masked by setting bit 5 on I/O port 21h
  617. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  618. SeeAlso: INT 7D"GO32"
  619. --------H-0D---------------------------------
  620. INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  621. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  622.       1000-series models; later models use normal DMA for RAM refresh
  623.       (some early models have no DMA unless it is added via an expansion
  624.       card)
  625. SeeAlso: INT 55
  626. --------h-0D---------------------------------
  627. INT 0D - HP 95LX - INFRARED INTERRUPT
  628. Desc:    this interrupt is used to perform communications over the infrared
  629.       data link
  630. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  631. --------C-0D---------------------------------
  632. INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  633. Desc:    the CPU generates this interrupt when it detects a protection violation
  634.       which does not fit under any other category having a separate
  635.       interrupt
  636. Notes:    called in real mode when
  637.         an instruction accesses a memory operand extending beyond offset
  638.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  639.           CS, DS, ES, FG, or GS
  640.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  641.           in the second byte
  642.         an instruction exceeds the maximum length allowed (10 bytes for
  643.           80286, 15 bytes for 80386/80486)
  644.         an instruction wraps from offset FFFFh to offset 0000h
  645.     called in protected mode on protection violations not covered by INT 06
  646.       through INT 0C, including
  647.         segment limit violations
  648.         write to read-only segments
  649.         accesses using null DS or ES selectors
  650.         accesses to segments with privilege greater than CPL
  651.         wrong descriptor type
  652.     called on 80486 protected-mode floating-point protection fault
  653. SeeAlso: INT 09"80486",INT 0C"STACK"
  654. --------H-0E---------------------------------
  655. INT 0E - IRQ6 - DISKETTE CONTROLLER
  656. Desc:    this interrupt is generated by the floppy disk controller on
  657.       completion of an operation
  658. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  659.     may be masked by setting bit 6 on I/O port 21h
  660. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  661. --------C-0E---------------------------------
  662. INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
  663. Desc:    this interrupt is generated in protected and virtual-86 modes on
  664.       attempting to access a 4K memory page whose page table entry has
  665.       the "present" bit cleared
  666. Note:    used to implement virtual memory
  667. SeeAlso: INT 0B"hardware"
  668. --------h-0E---------------------------------
  669. INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
  670. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  671. --------H-0F---------------------------------
  672. INT 0F - IRQ7 - PARALLEL PRINTER
  673. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  674.       printer becomes ready
  675. Notes:    most printer adapters do not reliably generate this interrupt
  676.     the 8259 interrupt controller generates an interrupt corresponding to
  677.       IRQ7 when an error condition occurs
  678. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  679. --------h-0F---------------------------------
  680. INT 0F - HP 95LX - REAL-TIME CLOCK
  681. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  682. --------C-10---------------------------------
  683. INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
  684. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  685.       by the coprocessor
  686. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  687.       get it right
  688. SeeAlso: INT 09"hardware",INT 75
  689. --------V-1000-------------------------------
  690. INT 10 - VIDEO - SET VIDEO MODE
  691.     AH = 00h
  692.     AL = mode (see below)
  693. Return: AL = video mode flag (Phoenix BIOS)
  694.         20h mode > 7
  695.         30h modes 0-5 and 7
  696.         3Fh mode 6
  697.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  698. Desc:    specify the display mode for the currently active display adapter
  699. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  700.       (EGA or higher only)
  701.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  702.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  703.       Everex EV-673
  704.     the installation check for Ahead adapters is the signature "AHEAD" at
  705.       C000h:0025h
  706.     the installation check for Paradise adapters is the signature "VGA=" at
  707.       C000h:007Dh
  708.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  709.       signature "OAK VGA" at C000h:0008h
  710.     the installation check for ATI adapters is the signature "761295520" at
  711.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  712.         31h for 18800
  713.         32h for 18800-1
  714.         33h for 18800-2
  715.         34h for 18800-4
  716.         35h for 18800-5
  717.       the two bytes at C000h:0040h indicate the adapter type
  718.         "22" EGA Wonder
  719.         "31" VGA Wonder
  720.         "32" EGA Wonder800+
  721.       the byte at C000h:0042h contains feature flags
  722.         bit 1: mouse port present
  723.         bit 4: programmable video clock
  724.       the byte at C000h:0044h contains additional feature flags if chipset
  725.         byte > 30h (see below)
  726.     the installation check for Genoa video adapters is the signature
  727.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  728.       and XXh is
  729.         00h for Genoa 6200/6300
  730.         11h for Genoa 6400/6600
  731.         22h for Genoa 6100
  732.         33h for Genoa 5100/5200
  733.         55h for Genoa 5300/5400
  734.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  735.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  736.         "EXTMODE", indicating support for extended modes
  737. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  738. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  739. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  740. Index:    installation check;Oak Technologies|installation check;ATI video cards
  741. Index:    installation check;Paradise video|installation check;Genoa video cards
  742.  
  743. Bitfields for ATI additional feature flags:
  744. Bit(s)    Description
  745.  0    70 Hz non-interlaced display
  746.  1    Korean (double-byte) characters
  747.  2    45 MHz memory clock rather than 40 MHz
  748.  3    zero wait states
  749.  4    paged ROMs
  750.  6    no 8514/A monitor support
  751.  7    HiColor DAC
  752.  
  753. Values for video mode:
  754.      text/ text pixel    pixel    colors disply scrn  system
  755.      grph resol     box  resolution       pages  addr
  756.  00h = T  40x25     8x8   320x200    16gray      8   B800 CGA,PCjr,Tandy
  757.      = T  40x25     8x14  320x350    16gray      8   B800 EGA
  758.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  759.      = T  40x25     9x16  360x400     16      8   B800 VGA
  760.  01h = T  40x25     8x8   320x200     16      8   B800 CGA,PCjr,Tandy
  761.      = T  40x25     8x14  320x350     16      8   B800 EGA
  762.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  763.      = T  40x25     9x16  360x400     16      8   B800 VGA
  764.  02h = T  80x25     8x8   640x200    16gray      4   B800 CGA,PCjr,Tandy
  765.      = T  80x25     8x14  640x350    16gray      4   B800 EGA
  766.      = T  80x25     8x16  640x400     16      4   B800 MCGA
  767.      = T  80x25     9x16  720x400     16      4   B800 VGA
  768.  03h = T  80x25     8x8   640x200     16      4   B800 CGA,PCjr,Tandy
  769.      = T  80x25     8x14  640x350     16/64      4   B800 EGA
  770.      = T  80x25     8x16  640x400     16      4   B800 MCGA
  771.      = T  80x25     9x16  720x400     16      4   B800 VGA
  772.  04h = G  40x25     8x8   320x200      4      .   B800 CGA,PCjr,EGA,MCGA,VGA
  773.  05h = G  40x25     8x8   320x200     4gray      .   B800 CGA,PCjr,EGA
  774.      = G  40x25     8x8   320x200      4      .   B800 MCGA,VGA
  775.  06h = G  80x25     8x8   640x200      2      .   B800 CGA,PCjr,EGA,MCGA,VGA
  776.  07h = T  80x25     9x14  720x350    mono     var  B000 MDA,Hercules,EGA
  777.      = T  80x25     9x16  720x400    mono      .   B000 VGA
  778.  08h = T 132x25     8x8  1056x200     16      .   B800 ATI EGA/VGA Wonder [2]
  779.      = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA/VGA Wonder [2]
  780.      = G  20x25     8x8   160x200     16      .    .  PCjr, Tandy 1000
  781.      = G  90x43     8x8   720x352    mono      .   B000 Hercules + MSHERC.COM
  782.      = G  90x45     8x8   720x360    mono      .   B000 Hercules + HERKULES [11]
  783.  09h = G  40x25     8x8   320x200     16      .    .  PCjr, Tandy 1000
  784.  0Ah = G  80x25     8x8   640x200      4      .    .  PCjr, Tandy 1000
  785.  0Bh =     reserved                   (EGA BIOS internal use)
  786.      = G  80x25     8x8   640x200     16      .    .  Tandy 1000 SL/TL [13]
  787.  0Ch =     reserved                   (EGA BIOS internal use)
  788.  0Dh = G  40x25     8x8   320x200     16      8   A000 EGA,VGA
  789.  0Eh = G  80x25     8x8   640x200     16      4   A000 EGA,VGA
  790.  0Fh = G  80x25     8x14  640x350    mono      2   A000 EGA,VGA
  791.  10h = G  80x25     8x14  640x350      4      2   A000 64k EGA
  792.      = G    .      .    640x350     16      .   A000 256k EGA,VGA
  793.  11h = G  80x30     8x16  640x480    mono      .   A000 VGA,MCGA,ATI EGA,ATI VIP
  794.  12h = G  80x30     8x16  640x480     16/256K  .   A000 VGA,ATI VIP
  795.      = G  80x30     8x16  640x480     16/64      .   A000 ATI EGA Wonder
  796.      = G    .      .    640x480     16      .    .  UltraVision+256K EGA
  797.  13h = G  40x25     8x8   320x200    256/256K  .   A000 VGA,MCGA,ATI VIP
  798.  14h = T 132x25     Nx16      .     16      .    .  XGA, IBM Enhanced VGA [3]
  799.      = T 132x25     8x16 1056x400     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  800.      = G  80x25     8x8   640x200      .      .    .  Lava Chrome II EGA
  801.      = G    .      .    640x400     16      .    .  Tecmar VGA/AD
  802.  15h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  803.  16h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  804.      = G    .      .    800x600     16      .    .  Tecmar VGA/AD
  805.  17h = T 132x25      .      .      .      .    .  Tecmar VGA/AD
  806.      = T  80x43     8x8   640x348     16      4   B800 Tseng ET4000 BIOS [10]
  807.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  808.  18h = T  80x30     9x16  720x480     16      1   A000 Realtek RTVGA [12]
  809.      = T 132x25      .      .    mono      .   B000 Cirrus 5320 chipset
  810.      = T 132x44     8x8  1056x352    mono      .   B000 Tseng Labs EVA
  811.      = T 132x44     9x8  1188x352     4gray      2   B000 Tseng ET3000 chipset
  812.      = T 132x44     8x8  1056x352     16/256      2   B000 Tseng ET4000 chipset
  813.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  814.      = G          1024x768     16      .    .  Tecmar VGA/AD
  815.  19h = T  80x43     9x11  720x473     16      1   A000 Realtek RTVGA [12]
  816.      = T 132x25     8x14 1056x350    mono      .   B000 Tseng Labs EVA
  817.      = T 132x25     9x14 1188x350     4gray      4   B000 Tseng ET3000 chipset
  818.      = T 132x25     8x14 1056x350     16/256      4   B000 Tseng ET4000 chipset
  819.      = T 132x34      .      .    mono      .   B000 Cirrus 5320 chipset
  820.  1Ah = T  80x60     9x8   720x480     16      1   A000 Realtek RTVGA [12]
  821.      = T 132x28     8x13 1056x364    mono      .   B000 Tseng Labs EVA
  822.      = T 132x28     9x13 1188x364     4gray      4   B000 Tseng ET3000 chipset
  823.      = T 132x28     8x13 1056x364     16/256      4   B000 Tseng ET4000 chipset
  824.      = T 132x44      .      .    mono      .   B000 Cirrus 5320 chipset
  825.      = G    .      .    640x350    256      .    .  Tecmar VGA/AD
  826.  1Bh = T 132x25     9x14 1188x350     16      1   A000 Realtek RTVGA [12]
  827.      = G    .      .    640x400    256      .    .  Tecmar VGA/AD
  828.  1Ch = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  829.      = T 132x30     9x16 1188x480     16      1   A000 Realtek RTVGA [12]
  830.      = G    .      .    640x480    256      .    .  Tecmar VGA/AD
  831.  1Dh = T 132x43      .      .      .      .    .  Cirrus 5320 chipset
  832.      = T 132x43     9x11 1188x473     16      1   A000 Realtek RTVGA [12]
  833.      = G    .      .    800x600    256      .    .  Tecmar VGA/AD
  834.  1Eh = T 132x44      .      .      .      .    .  Cirrus 5320 chipset
  835.      = T 132x60     9x8  1188x480     16      1   A000 Realtek RTVGA [12]
  836.  1Fh = G 100x75     8x8   800x600     16      1   A000 Realtek RTVGA
  837.  20h = T 132x25      .      .     16      .    .  Avance Logic AL2101
  838.      = G    .      .    240x128      .      .   B000 HP 95LX
  839.      = G 120x45     8x16  960x720     16      1   A000 Realtek RTVGA
  840.  21h = T 132x30      .      .     16      .    .  Avance Logic AL2101
  841.      = T 132x44     9x9  1188x396     16/256K  .   B800 WD90C
  842.      = T 132x44     9x9  1188x396     16      .   B800 Diamond Speedstar 24X
  843.      = T 132x60      .      .     16      2   B800 Tseng ET4000 chipset [10]
  844.      = G  80x43     8x8   720x348    mono      .   B000 DESQview 2.x+Hercules [4]
  845.      = G 128x48     8x16 1024x768     16      1   A000 Realtek RTVGA [12]
  846.  22h = T 132x43      .      .      .      .    .  Allstar Peacock (VGA)
  847.      = T 132x43      .      .     16      .    .  Avance Logic AL2101
  848.      = T 132x44     8x8  1056x352      .      .   B800 Tseng Labs EVA
  849.      = T 132x44     9x8  1188x352     16/256K  2   B800 Tseng ET3000 chipset
  850.      = T 132x44     8x8  1056x352     16/256K  2   B800 Tseng ET4000 chipset
  851.      = T 132x44     8x8  1056x352      .      .    .  Ahead Systems EGA2001
  852.      = T 132x44     8x8  1056x352     16      2   B800 Ahead B
  853.      = T 132x44      .      .     16      .    .  Orchid Prodesigner VGA
  854.      = G  80x43     8x8   720x348    mono      .   B800 DESQview 2.x+Hercules [4]
  855.      = G  96x64     8x16  768x1024     16      1   A000 Realtek RTVGA
  856.  23h = T 132x25     6x14  792x350      .      .   B800 Tseng Labs EVA
  857.      = T 132x25     9x14 1188x350     16/256K  4   B800 Tseng ET3000 chipset
  858.      = T 132x25     8x14 1056x350     16/256      4   B800 Tseng ET4000 chipset
  859.      = T 132x25     8x14 1056x350      .      .    .  Ahead Systems EGA2001
  860.      = T 132x25     8x14 1056x350     16      4   B800 Ahead B
  861.      = T 132x25     8x8  1056x200     16      .   B800 ATI EGA Wonder,ATI VIP
  862.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  863.      = T 132x28      .      .      .      .    .  Allstar Peacock (VGA)
  864.      = T 132x28      .      .     16      .    .  Orchid Prodesigner VGA
  865.      = T 132x60      .      .     16      .    .  Avance Logic AL2101
  866.      = G 128x48     8x16 1024x768      4      1   A000 Realtek RTVGA
  867.  24h = T  80x30      .      .     16      .    .  Avance Logic AL2101
  868.      = T 132x25      .      .      .      .    .  Allstar Peacock (VGA)
  869.      = T 132x25      .      .     16      .    .  Orchid Prodesigner VGA
  870.      = T 132x28     6x13  792x364      .      .   B800 Tseng Labs EVA
  871.      = T 132x28     9x13 1188x364     16/256K  4   B800 Tseng ET3000 chipset
  872.      = T 132x28     8x13 1056x364     16/256K  4   B800 Tseng ET4000 chipset
  873.      = T 132x28     8x12 1056x336     16      1   B800 Ahead B
  874.      = T 132x28      .      .      .      .    .  Cirrus 5320 chipset
  875.      = G  64x32     8x16  512x512    256      1   A000 Realtek RTVGA
  876.  25h = T  80x43      .      .     16      .    .  Avance Logic AL2101
  877.      = G  80x60     8x8   640x480      .      .   A000 Tseng Labs EVA
  878.      = G  80x60     8x8   640x480     16/256K  1   A000 Tseng ET3000/4000 chipset
  879.      = G    .      .    640x480     16      .    .  VEGA VGA
  880.      = G  80x60     8x8   640x480     16      .   A000 Orchid Prodesigner VGA
  881.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 26h)
  882.      = G    .      .    640x480     16      .    .  NEC GB-1
  883.      = G    .      .    640x480     16      .    .  Cirrus 5320 chipset
  884.      = G    .      .    640x400    256      .    .  Realtek RTVGA
  885.  26h = T  80x60     8x8   640x480      .      .    .  Tseng Labs EVA
  886.      = T  80x60     8x8   640x480     16/256K  3   B800 Tseng ET3000/4000 chipset
  887.      = T  80x60      .      .      .      .    .  Allstar Peacock (VGA)
  888.      = T  80x60      .      .     16      .    .  Orchid ProDesigner VGA
  889.      = T  80x60      .      .     16      .    .  Avance Logic AL2101
  890.      = G  80x60     8x8   640x480      .      .    .  Ahead Systems EGA2001
  891.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 25h)
  892.      = G    .      .    640x480    256      .    .  Realtek RTVGA
  893.  27h = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA Wonder,ATI VIP
  894.      = G    .      .    720x512     16      .    .  VEGA VGA
  895.      = G    .      .    720x512     16      .    .  Genoa
  896.      = G 100x75     8x8   800x600    256      1   A000 Realtek RTVGA [12]
  897.      = G    .      .    960x720     16      .    .  Avance Logic AL2101
  898.  28h = T ???x???  .      .      .      .    .  VEGA VGA
  899.      = G    .      .    512x512    256      .    .  Avance Logic AL2101
  900.      = G    .      .   1024x768    256      .    .  Realtek RTVGA (1meg)
  901.  29h = G    .      .    640x400    256      .    .  Avance Logic AL2101
  902.      = G    .      .    800x600     16      .    .  VEGA VGA
  903.      = G 100x37     8x16  800x600     16      .   A000 Orchid
  904.      = G    .      .    800x600     16      .   A000 STB,Genoa,Sigma
  905.      = G    .      .    800x600     16      .    .  Allstar Peacock (VGA)
  906.      = G 100x37     8x16  800x600     16/256K  1   A000 Tseng ET3000/4000 chipset
  907.      = G    .      .    800x600    ???      .    .  EIZO MDB10
  908.      = G    .      .    800x600     16      .    .  Cirrus 5320 chipset
  909.      = G    .      .   1024x1024 256      .    .  Realtek RTVGA BIOS v3.C10
  910.  2Ah = T 100x40      .      .      .      .    .  Allstar Peacock (VGA)
  911.      = T 100x40     8x16  800x640     16      .    .  Orchid Prodesigner VGA
  912.      = T 100x40     8x15  800x600     16/256K  4   B800 Tseng ET3000/4000 chipset
  913.      = G    .      .    640x480    256      .    .  Avance Logic AL2101
  914.      = G    .      .   1280x1024     16      .    .  Realtek RTVGA
  915.  2Bh = G    .      .    800x600     16      .    .  Avance Logic AL2101
  916.  2Ch = G    .      .    800x600    256      .    .  Avance Logic AL2101
  917.  2Dh = G    .      .    640x350    256      .    .  VEGA VGA
  918.      = G    .      .    640x350    256/256K  .   A000 Orchid, Genoa, STB
  919.      = G  80x25     8x14  640x350    256/256K  1   A000 Tseng ET3000/4000 chipset
  920.      = G    .      .    640x350    256      .    .  Cirrus 5320 chipset
  921.      = G    .      .    768x1024     16      .    .  Avance Logic AL2101
  922.  2Eh = G    .      .    640x480    256      .    .  VEGA VGA
  923.      = G  80x30     8x16  640x480 256/256K      .   A000 Orchid
  924.      = G    .      .    640x480 256/256K      .   A000 STB,Genoa,Sigma
  925.      = G  80x30     8x16  640x480 256/256K      1   A000 Tseng ET3000/4000 chipset
  926.      = G    .      .    768x1024 256      .    .  Avance Logic AL2101
  927.  2Fh = T 160x50     8x8  1280x400     16      4   B800 Ahead B (Wizard/3270)
  928.      = G    .      .    720x512    256      .    .  VEGA VGA
  929.      = G    .      .    720x512    256      .    .  Genoa
  930.      = G  80x25     8x16  640x400 256/256K      1   A000 Tseng ET4000 chipset
  931.      = G    .      .   1024x768      4      .    .  Avance Logic AL2101
  932.  30h = G    .      .    800x600    256      .    .  VEGA VGA
  933.      = G 100x37     8x16  800x600 256/256K      .   A000 Orchid
  934.      = G    .      .    800x600 256/256K      .   A000 STB,Genoa,Sigma
  935.      = G    .      .    720x350      2      .    .  3270 PC
  936.      = G    .      .    800x600    256      .    .  Cardinal
  937.      = G    .      .      .      .      .   B800 AT&T 6300
  938.      = G 100x37     8x16  800x600 256/256K      1   A000 Tseng ET3000/4000 chipset
  939.      = G    .      .   1024x768     16      .    .  Avance Logic AL2101
  940.  31h = G    .      .   1024x768    256      .    .  Avance Logic AL2101
  941.  32h = T  80x34     8x10      .     16      4   B800 Ahead B (Wizard/3270)
  942.  33h = T 132x44     8x8      .     16      .   B800 ATI EGA Wonder,ATI VIP
  943.      = T  80x34     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  944.  34h = T  80x66     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  945.  36h = G    .      .    960x720     16      .    .  VEGA VGA, STB
  946.      = G    .      .    960x720     16      .   A000 Tseng ET3000 only
  947.      = G    .      .   1280x1024     16      .    .  Avance Logic AL2101
  948.  37h = T 132x44     8x8      .    mono      .   B800 ATI EGA Wonder,ATI VIP
  949.      = G    .      .   1024x768     16      .    .  VEGA VGA
  950.      = G 128x48     8x16 1024x768     16      .   A000 Orchid
  951.      = G    .      .   1024x768     16      .   A000 STB,Genoa,Sigma
  952.      = G    .      .   1024x768     16      .    .  Definicon
  953.      = G 128x48     8x16 1024x768     16      1   A000 Tseng ET3000/4000 chipset
  954.      = G    .      .   1280x1024 256      .    .  Avance Logic AL2101
  955.  38h = G    .      .   1024x768    256      .    .  STB VGA/EM-16 Plus (1MB)
  956.      = G 128x48     8x16 1024x768    256/256K  1   A000 Tseng ET4000 chipset
  957.      = G    .      .   1024x768    256      .    .  Orchid ProDesigner II
  958.  3Dh = G    .      .   1280x1024     16      .    .  Definicon
  959.      = G 128x64     8x16 1280x1024     16      1   A000 Tseng ET4000 v3.00 [1,7]
  960.  3Eh = G    .      .   1280x961     16      .    .  Definicon
  961.  3Fh = G    .      .   1280x1024 256      .    .  Hercules ??? (ET4000W32)
  962.  40h = T  80x43      .      .      .      .    .  VEGA VGA, Tecmar VGA/AD
  963.      = T  80x43      .      .      .      .    .  Video7 V-RAM VGA
  964.      = T  80x43      .      .      .      .    .  Tatung VGA
  965.      = T 100x30      .      .     16      .    .  MORSE VGA
  966.      = T 100x30      .      .      .      .    .  Cirrus 510/520 chipset
  967.      = T  80x25      .    720x350    mono      .    .  Genoa SuperEGA BIOS 3.0+
  968.      = G    .      .    320x200     64K      .    .  Avance Logic AL2101
  969.      = G  80x25     8x16  640x400      2      1   B800 AT&T 6300, AT&T VDC600
  970.      = G  80x25     8x16  640x400      2      1   B800 Olivetti Quaderno
  971.      = G  80x25     8x16  640x400      2      1   B800 Compaq Portable
  972.  41h = T 132x25      .      .      .      .    .  VEGA VGA
  973.      = T 132x25      .      .      .      .    .  Tatung VGA
  974.      = T 132x25      .      .      .      .    .  Video7 V-RAM VGA
  975.      = T 100x50      .      .     16      .    .  MORSE VGA
  976.      = T 100x50      .      .      .      .    .  Cirrus 510/520 chipset
  977.      = T  80x34     9x14  720x476     16/256K  .   B800 WD90C
  978.      = T  80x34     9x14      .     16      .   B800 Diamond Speedstar 24X
  979.      = G    .      .    512x512     64K      .    .  Avance Logic AL2101
  980.      = G    .      .    640x200     16      1    .  AT&T 6300
  981.      = G  80x25      .    720x348    mono      .   B000 Genoa SuperEGA BIOS 3.0+
  982.  42h = T 132x43      .      .      .      .    .  VEGA VGA
  983.      = T 132x43      .      .      .      .    .  Tatung VGA
  984.      = T 132x43      .      .      .      .    .  Video7 V-RAM VGA
  985.      = T  80x34     9x10      .      4      4   B800 Ahead B (Wizard/3270)
  986.      = T 100x60      .      .     16      .    .  MORSE VGA
  987.      = T 100x60      .      .      .      .    .  Cirrus 510/520 chipset
  988.      = G  80x25     8x16  640x400     16      .    .  AT&T 6300, AT&T VDC600
  989.      = G    .      .    640x400     64K      .    .  Avance Logic AL2101
  990.      = G  80x25      .    720x348    mono      .   B800 Genoa SuperEGA BIOS 3.0+
  991.  43h = T  80x60      .      .      .      .    .  VEGA VGA
  992.      = T  80x60      .      .      .      .    .  Tatung VGA
  993.      = T  80x60      .      .      .      .    .  Video7 V-RAM VGA
  994.      = T  80x45     9x8      .      4      4   B800 Ahead B (Wizard/3270)
  995.      = T 100x75      .      .     16      .    .  MORSE VGA
  996.      = T  80x29      .    720x348    mono      .    .  Genoa SuperEGA BIOS 3.0+
  997.      = G    .      . 640x200 of 640x400 viewport       AT&T 6300 (unsupported)
  998.      = G    .      .    640x480     64K      .    .  Avance Logic AL2101
  999.  44h =    disable VDC and DEB output        .  AT&T 6300
  1000.      = T 100x60      .      .      .      .    .  VEGA VGA
  1001.      = T 100x60      .      .      .      .    .  Tatung VGA
  1002.      = T 100x60      .      .      .      .    .  Video7 V-RAM VGA
  1003.      = T  80x32      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1004.      = G    .      .    800x600     64K      .    .  Avance Logic AL2101
  1005.  45h = T 132x28      .      .      .      .    .  Tatung VGA
  1006.      = T 132x28      .      .      .      .    .  Video7 V-RAM VGA
  1007.      = T  80x44      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1008.  46h = T 132x25     8x14      .    mono      .    .  Genoa 6400
  1009.      = T 132x25     9x14      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1010.      = G 100x40     8x15  800x600      2      .    .  AT&T VDC600
  1011.  47h = T 132x29     8x12      .    mono      .    .  Genoa 6400
  1012.      = T 132x29     9x12      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1013.      = T 132x28     9x16 1188x448     16/256K  .   B800 WD90C
  1014.      = T 132x28     9x16      .     16      .   B800 Diamond Speedstar 24X
  1015.      = G 100x37     8x16  800x600     16      .    .  AT&T VDC600
  1016.  48h = T 132x32     8x12      .    mono      .    .  Genoa 6400
  1017.      = T 132x32     9x11      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1018.      = G  80x50     8x8   640x400      2      .   B800 AT&T 6300, AT&T VDC600
  1019.      = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno
  1020.  49h = T 132x44     8x8      .    mono      .    .  Genoa 6400
  1021.      = T 132x44     9x8      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1022.      = G  80x30     8x16  640x480      .      .    .  Lava Chrome II EGA
  1023.  4Dh = T 120x25      .      .      .      .    .  VEGA VGA
  1024.  4Eh = T 120x43      .      .      .      .    .  VEGA VGA
  1025.      = T  80x60     8x8      .     16/256K  .   B800 Oak OTI-067/OTI-077 [8]
  1026.  4Fh = T 132x25      .      .      .      .    .  VEGA VGA
  1027.      = T 132x60      .      .      .      .    .  some Oak Tech VGA [8]
  1028.  50h = T  80x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1029.      = T  80x34      .      .      .      .    .  Lava Chrome II EGA
  1030.      = T  80x43      .      .    mono      .    .  VEGA VGA
  1031.      = T 132x25     9x14      .    mono      .    .  Ahead Systems EGA2001
  1032.      = T 132x25     9x14      .      4      4   B800 Ahead B
  1033.      = T 132x25     8x14      .     16      8   B800 OAK Technologies VGA-16
  1034.      = T 132x25     8x14      .     16/256K  .   B800 Oak OTI-037/067/077 [8]
  1035.      = T 132x25     8x14 1056x350     16      8   B800 UM587 chipset
  1036.      = T 132x30      .      .     16      .    .  MORSE VGA
  1037.      = T 132x30      .      .      .      .    .  Cirrus 510/520 chipset
  1038.      = G  80x30     8x16  640x480     16      .    .  Paradise EGA-480
  1039.      = G  80x30     8x16  640x480     16      .    .  NEL Electronics BIOS
  1040.      = G    .      .    640x480    mono???      .    .  Taxan 565 EGA
  1041.      = G  40x25     8x8   320x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1042.  51h = T  80x30     8x16      .      .      .    .  Paradise EGA-480
  1043.      = T  80x30     9x16      .      .      .    .  NEL Electronics BIOS
  1044.      = T  80x30      .      .      .      .    .  Lava Chrome II EGA
  1045.      = T  80x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1046.      = T 132x25      .      .    mono      .    .  VEGA VGA
  1047.      = T 132x28     9x12      .      4      4   B800 Ahead B
  1048.      = T 132x43     8x8      .     16      5   B800 OAK Technologies VGA-16
  1049.      = T 132x43     8x8      .     16/256K  .   B800 Oak OTI-037/067/077
  1050.      = T 132x43     8x8  1056x344     16      5   B800 UM587 chipset
  1051.      = T 132x50      .      .     16      .    .  MORSE VGA
  1052.      = T 132x50      .      .      .      .    .  Cirrus 510/520 chipset
  1053.      = G  80x34     8x14  640x480     16      .    .  ATI EGA Wonder
  1054.      = G  80x25     8x8   640x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1055.  52h = T  80x60      .      .      .      .    .  Lava Chrome II EGA
  1056.      = T  80x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1057.      = T 132x43      .      .    mono      .    .  VEGA VGA
  1058.      = T 132x44     9x8      .    mono      .    .  Ahead Systems EGA2001
  1059.      = T 132x44     9x8      .      4      2   B800 Ahead B
  1060.      = T 132x60      .      .     16      .    .  MORSE VGA
  1061.      = T 132x60      .      .      .      .    .  Cirrus 510/520 chipset
  1062.      = G  94x29     8x14  752x410     16      .    .  ATI EGA Wonder
  1063.      = G 100x75     8x8   800x600     16      1   A000 OAK Technologies VGA-16
  1064.      = G 100x75     8x8   800x600     16      .   A000 Oak OTI-037 chipset [8]
  1065.      = G 100x37     8x16  800x600     16      .   A000 Oak OTI-067/077 chips [8]
  1066.      = G 100x75     8x8   800x600     16      .   A000 UM587 chipset
  1067.      = G 128x30     8x16 1024x480     16      .    .  NEL Electronics BIOS
  1068.  53h = T  80x25     8x16      .      .      .    .  NEL Electronics BIOS
  1069.      = T  80x60      .      .     16      .    .  MORSE VGA
  1070.      = T  80x60      .      .      .      .    .  Cirrus 510/520 chipset
  1071.      = T 132x25     8x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1072.      = T 132x43      .      .      .      .    .  Lava Chrome II EGA
  1073.      = G    .      .    640x480    256      .    .  Oak VGA
  1074.      = G  80x30     8x16  640x480    256      .   A000 Oak OTI-067/OTI-077 [8]
  1075.      = G 100x40     8x14  800x560     16      .    .  ATI EGA Wonder,ATI VIP
  1076.      = G    .      .      .      .      .    .  AX PC
  1077.  54h = T 132x25      .      .      .      .    .  Lava Chrome II EGA
  1078.      = T 132x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1079.      = T 132x43     8x8      .      .      .    .  Paradise EGA-480
  1080.      = T 132x43     8x8      .      .      .    .  NEL Electronics BIOS
  1081.      = T 132x43     7x9      .     16/256K  .   B800 Paradise VGA
  1082.      = T 132x43     8x9      .     16/256K  .   B800 Paradise VGA on multisync
  1083.      = T 132x43      .      .      .      .    .  Taxan 565 EGA
  1084.      = T 132x43      .      .      .      .    .  AST VGA Plus
  1085.      = T 132x43      .      .      .      .    .  Hewlett-Packard D1180A
  1086.      = T 132x43     7x9      .     16      .    .  AT&T VDC600
  1087.      = T 132x43     9x9  1188x387     16/256K  .   B800 WD90C
  1088.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Speedstar 24X
  1089.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Stealth 24
  1090.      = T 132x43     8x8  1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1091.      = T 132x50     8x8      .     16      .   A000 NCR 77C22 [9]
  1092.      = G 100x42     8x14  800x600     16      .   A000 ATI EGA Wonder, VGA Wonder
  1093.      = G 100x42     8x14  800x600     16      .   A000 ATI Ultra 8514A, ATI XL
  1094.      = G    .      .    800x600    256      .   A000 Oak VGA
  1095.      = G 100x37     8x16  800x600    256      .   A000 Oak OTI-067/077 chips [8]
  1096.  55h = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1097.      = T 132x25     8x14      .      .      .    .  Paradise EGA-480
  1098.      = T 132x25     8x14      .      .      .    .  NEL Electronics BIOS
  1099.      = T 132x25     7x16      .     16/256K  .   B800 Paradise VGA
  1100.      = T 132x25     8x16      .     16/256K  .   B800 Paradise VGA on multisync
  1101.      = T 132x25      .      .      .      .    .  Taxan 565 EGA
  1102.      = T 132x25      .      .      .      .    .  AST VGA Plus
  1103.      = T 132x25      .      .      .      .    .  Hewlett-Packard D1180A
  1104.      = T 132x25     7x16      .     16      .    .  AT&T VDC600
  1105.      = T 132x25     8x16      .     16      .   A000 NCR 77C22 [9]
  1106.      = T 132x25     9x16 1188x400     16/256K  .   B800 WD90C
  1107.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Speedstar 24X
  1108.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Stealth 24
  1109.      = T 132x25     8x14 1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1110.      = T 132x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1111.      = G  94x29     8x14  752x410      .      .    .  Lava Chrome II EGA
  1112.      = G 128x48     8x16 1024x768     16/256K  .   A000 ATI VGA Wonder v4+  [5]
  1113.      = G    .      .   1024x768     16/256K  .    .  ATI VGA Wonder Plus
  1114.      = G    .      .   1024x768     16/256K  .    .  ATI Ultra 8514A,ATI XL
  1115.      = G 128x48     8x16 1024x768      4      .   A000 Oak OTI-067/077 chips [8]
  1116.  56h = T 132x43     8x8      .      3???      2   B000 NSI Smart EGA+
  1117.      = T 132x43     7x9      .      4      .   B000 Paradise VGA
  1118.      = T 132x43     8x9      .      4      .   B000 Paradise VGA on multisync
  1119.      = T 132x43      .      .    mono      .    .  Taxan 565 EGA
  1120.      = T 132x43     7x9      .      2      .    .  AT&T VDC600
  1121.      = T 132x43     9x8      .      .      .    .  NEL Electronics BIOS
  1122.      = T 132x50     8x8      .      4      .   A000 NCR 77C22 [9]
  1123.      = T 132x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1124.      = G    .      .   1024x768     16      .   A000 Oak VGA
  1125.      = G 128x48     8x16 1024x768     16      .   A000 Oak OTI-067/077 chips [8]
  1126.  57h = T 132x25     8x14      .      3???      4   B000 NSI Smart EGA+
  1127.      = T 132x25     7x16      .      4      .   B000 Paradise VGA
  1128.      = T 132x25     8x16      .      4      .   B000 Paradise VGA on multisync
  1129.      = T 132x25     9x14      .      .      .    .  NEL Electronics BIOS
  1130.      = T 132x25      .      .    mono      .    .  Taxan 565 EGA
  1131.      = T 132x25     7x16      .      2      .    .  AT&T VDC600
  1132.      = T 132x25     9x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1133.      = T 132x25     8x16      .      4      .   A000 NCR 77C22 [9]
  1134.      = G  96x48     8x16  768x1024     16      .   A000 Oak OTI-067/077 chips [8]
  1135.  58h = T  80x33     8x14      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1136.      = T  80x32     9x16      .     16      .    .  Genoa 6400
  1137.      = T  80x43     8x8      .      .      .    .  NEL Electronics BIOS
  1138.      = T 132x30     9x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1139.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA
  1140.      = G 100x75     8x8   800x600     16      .    .  AT&T VDC600
  1141.      = G 100x75     8x8   800x600     16      .   A000 NCR 77C22 [9]
  1142.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1143.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA, WD90C
  1144.      = G    .      .    800x600     16      .    .  AST VGA Plus, Compaq VGA
  1145.      = G    .      .    800x600     16      .    .  Dell VGA
  1146.      = G    .      .    800x600     16      .    .  Hewlett-Packard D1180A
  1147.      = G    .      .    800x600    ???      .    .  ELT VGA PLUS 16
  1148.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1149.      = G 160x64     8x16 1280x1024     16      .   A000 Oak OTI-077 chipset [8]
  1150.  59h = T  80x43     9x8      .      .      .    .  NEL Electronics BIOS
  1151.      = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1152.      = T 132x43     9x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1153.      = G 100x75     8x8   800x600      2      .   A000 Paradise VGA
  1154.      = G 100x75     8x8   800x600      2      .    .  AT&T VDC600
  1155.      = G    .      .    800x600      2      .    .  AST VGA Plus, Compaq VGA
  1156.      = G    .      .    800x600      2      .    .  Dell VGA
  1157.      = G    .      .    800x600      2      .    .  Hewlett-Packard D1180A
  1158.      = G 100x75     8x8   800x600      2      .   A000 NCR 77C22 [9]
  1159.      = G 128x48     8x16 1024x768    256      .   A000 Oak OTI-077 chipset [8]
  1160.  5Ah = T  80x60     8x8      .      .      .    .  NEL Electronics BIOS
  1161.      = T 132x60     9x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1162.      = G 128x48     8x16 1024x768      2      .   A000 NCR 77C22 [9]
  1163.  5Bh = T  80x30     8x16      .      .      .   B800 ATI VGA Wonder (undoc)
  1164.      = G    .      .    640x350    256      .    .  Genoa 6400
  1165.      = G  80x25     8x16  640x400     32K      .   A000 Oak OTI-067/077 chips [8]
  1166.      = G    .      .    800x600     16      .    .  Maxxon, SEFCO TVGA, Imtec
  1167.      = G 100x75     8x8   800x600     16/256K  .   A000 Trident TVGA 8800, 8900
  1168.      = G    .      .    800x600    ???      .    .  Vobis MVGA
  1169.      = G 100x37     8x16  800x600      .      .    .  NEL Electronics BIOS
  1170.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [1,9]
  1171.  5Ch = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1172.      = G    .      .    640x400    256      .    .  Logix, ATI Prism Elite
  1173.      = G    .      .    640x400    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1174.      = G  80x25     8x16  640x400    256/256K  .   A000 Zymos Poach, Hi Res 512
  1175.      = G  80x25     8x16  640x400    256/256K  .   A000 Trident TVGA 8800/8900
  1176.      = G  80x30     8x16  640x480    256      .    .  Genoa 6400
  1177.      = G  80x30     8x16  640x480     32K      .   A000 Oak OTI-077 chipset [8]
  1178.      = G 100x75     8x8   800x600    256      .   A000 NCR 77C22 [9]
  1179.      = G 100x75     8x8   800x600    256/256K  .   A000 WD90C
  1180.      = G 100x75     8x8   800x600    256/256K  .   A000 Diamond Speedstar 24X
  1181.      = G 100x37     8x16  800x600    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1182.  5Dh = T 100x75     8x8      .      .      .    .  NEL Electronics BIOS
  1183.      = G    .      .    640x480    256      .    .  Logix, ATI Prism Elite
  1184.      = G    .      .    640x480    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1185.      = G  80x30     8x16  640x480    256/256K  .   A000 Zymos Poach, Hi Res 512
  1186.      = G  80x30     8x16  640x480    256/256K  .   A000 Trident TVGA 8800 (512K)
  1187.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [9]
  1188.      = G 128x48     8x16 1024x768     16/256K  .   A000 WD90C
  1189.      = G 128x48     8x16 1024x768     16      .    .  Diamond Speedstar 24X
  1190.      = G 128x48     8x16 1024x768     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1191.  5Eh = G    .      .    640x400    256      .    .  Paradise VGA,VEGA VGA
  1192.      = G    .      .    640x400    256      .    .  AST VGA Plus, NCR 77C22
  1193.      = G    .      .    640x400    256      .    .  Compaq VGA, Dell VGA
  1194.      = G  80x25     8x16  640x400    256      .    .  AT&T VDC600
  1195.      = G  80x25     8x16  640x400    256      .   A000 NCR 77C22 [9]
  1196.      = G  80x25     8x16  640x400    256/256K  .   A000 WD90C
  1197.      = G  80x25     8x16  640x400    256/256K  .   A000 Diamond Speedstar 24X
  1198.      = G    .      .    800x600     16      .    .  Logix, ATI Prism Elite
  1199.      = G 100x37     8x16  800x600     16      .    .  NEL Electronics BIOS
  1200.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1201.      = G 100x75     8x8   800x600    256/256K  .   A000 Zymos Poach, Trident 8900
  1202.      = G 100x75     8x8   800x600    256/256K  .   A000 Hi Res 512
  1203.  5Fh = G    .      .    640x480    256      .    .  Paradise VGA
  1204.      = G    .      .    640x480    256      .    .  AST VGA Plus, NCR 77C22
  1205.      = G    .      .    640x480    256      .    .  Compaq VGA, Dell VGA
  1206.      = G    .      .    640x480    256      .    .  Hewlett-Packard D1180A
  1207.      = G  80x30     8x16  640x480    256      .    .  AT&T VDC600 (512K)
  1208.      = G  80x30     8x16  640x480    256      .   A000 NCR 77C22 [9]
  1209.      = G  80x30     8x16  640x480    256/256K  .   A000 WD90C
  1210.      = G  80x30     8x16  640x480    256/256K  .   A000 Diamond Speedstar 24X
  1211.      = G  80x30     8x16  640x480    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1212.      = G    .      .   1024x768     16      .    .  Logix, ATI Prism Elite
  1213.      = G    .      .   1024x768     16      .    .  Maxxon, Imtec
  1214.      = G 128x48     8x16 1024x768     16      .    .  Genoa 6400
  1215.      = G 128x48     8x16 1024x768     16/256K  .   A000 Zymos Poach, Hi Res 512
  1216.      = G 128x48     8x16 1024x768     16/256K  .   A000 Trident TVGA 88/8900 512K
  1217.  60h = T 132x25     8x14      .     16/64      8   B800 Quadram Ultra VGA
  1218.      = T 132x25     8x14      .     16      .    .  Genoa 6400
  1219.      = T 132x25     8x14      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1220.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  1221.      = T 132x25      .      .     16      .    .  Chips&Technologies chipset
  1222.      = G  80x???  .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1223.      = G  80x25     8x16  640x400    256      1   A000 Ahead A, Ahead B
  1224.      = G    .      .    752x410      .      .    .  VEGA VGA
  1225.      = G    .      .    752x410     16      .    .  Tatung VGA
  1226.      = G    .      .    752x410     16      .    .  Video7 V-RAM VGA
  1227.      = G 128x48     8x16 1024x768      4/256K  .   A000 Trident TVGA 8900
  1228.      = G 128x48     8x16 1024x768    256/256K  .   A000 WD90C
  1229.      = G 128x48     8x16 1024x768    256/256K  .   A000 Diamond Speedstar 24X
  1230.      = G 128x48     8x16 1024x768    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1231.  61h = T 132x29     8x12      .     16/64      8   B800 Quadram Ultra VGA
  1232.      = T 132x29     8x8      .     16      .    .  Genoa 6400
  1233.      = T 132x29     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1234.      = T 132x50      .      .      .      .    .  Cirrus 5320 chipset
  1235.      = T 132x50      .      .     16      .    .  Chips&Technologies chipset
  1236.      = G    .      .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1237.      = G  80x25     8x16  640x400    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1238.      = G  80x25     8x16  640x400    256      .   A000 ATI Ultra 8514A,ATI XL
  1239.      = G  80x30     8x16  640x480    256      1   A000 Ahead A, Ahead B (512K)
  1240.      = G    .      .    720x540      .      .    .  VEGA VGA
  1241.      = G    .      .    720x540     16      .    .  Tatung VGA
  1242.      = G    .      .    720x540     16      .    .  Video7 V-RAM VGA
  1243.      = G  96x64     8x16  768x1024     16/256K  .   A000 Trident TVGA 88/8900 512K
  1244.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [1,9]
  1245.  62h = T 132x32     8x11      .     16/64      6   B800 Quadram Ultra VGA
  1246.      = T 132x32     8x12      .     16      .    .  Genoa 6400
  1247.      = T 132x32     8x11      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1248.      = G    .      .    640x450     16      .    .  Cirrus 510/520 chipset
  1249.      = G  80x30     8x16  640x480    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1250.      = G  80x30     8x16  640x480    256      .   A000 ATI Ultra 8514A,ATI XL
  1251.      = G  80x30     8x16  640x480    32K      .   A000 WD90C
  1252.      = G  80x30     8x16  640x480    32K      .   A000 Diamond Speedstar 24X
  1253.      = G    .      .    800x600      .      .    .  VEGA VGA
  1254.      = G    .      .    800x600     16      .    .  Tatung VGA
  1255.      = G    .      .    800x600     16      .    .  Video7 V-RAM VGA
  1256.      = G 100x75     8x8   800x600    256      1   A000 Ahead A, Ahead B (512K)
  1257.      = G 128x48     8x16 1024x768    256/256K  .   A000 Trident TVGA 8900, Zymos
  1258.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [9]
  1259.  63h = T 132x44     8x8      .     16/64      5   B800 Quadram Ultra VGA
  1260.      = T 132x44     8x8      .     16      .    .  Genoa 6400
  1261.      = T 132x44     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1262.      = G    .      .    720x540     16      .    .  MORSE VGA
  1263.      = G    .      .    720x540     16      .    .  Cirrus 510/520 chipset
  1264.      = G 100x42     8x14  800x600    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1265.      = G 100x42     8x14  800x600    256      .   A000 ATI Ultra 8514A,ATI XL
  1266.      = G    .      .    800x600    32K      .   A000 WD90C
  1267.      = G    .      .    800x600    32K      .   A000 Diamond Speedstar 24X
  1268.      = G 128x48     7x16 1024x768    256      1   A000 Ahead B (1MB)
  1269.      = G    .      .   1024x768      2      .    .  Video7 V-RAM VGA
  1270.  64h = T 132x60     8x8      .     16      .    .  Genoa 6400
  1271.      = G    .      .    640x480    64K      .   A000 Cirrus CL-GD 5422/5426
  1272.      = G    .      .    800x600     16      .    .  MORSE VGA
  1273.      = G    .      .    800x600     16      .    .  Cirrus 510/520 chipset
  1274.      = G    .      .    800x600    ???      .    .  SAMPO-Mira VGA
  1275.      = G    .      .   1024x768      4      .    .  Video7 V-RAM VGA
  1276.      = G 128x48     8x16 1024x768    256      .   A000 ATI VGA Wonder Plus,ATI XL
  1277.      = G 160x64     8x16 1280x1024     16/256K  .   A000 WD90C [1]
  1278.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Diamond Speedstar 24X [1]
  1279.  65h = G    .      .    800x600    64K      .   A000 Cirrus CL-GD 5422/5426
  1280.      = G    .      .   1024x768     16      .    .  Video7 V-RAM VGA
  1281.      = G 128x48     8x16 1024x768     16      .   A000 ATI VGA Wonder
  1282.  66h = T  80x50     8x8   640x400     16/256K  .   B800 WD90C
  1283.      = T  80x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1284.      = G    .      .    640x400    256      .    .  Tatung VGA
  1285.      = G    .      .    640x400    256      .    .  Video7 V-RAM VGA
  1286.      = G    .      .    640x480    32K      .   A000 Cirrus CL-GD 5422/5426
  1287.  67h = T  80x43     8x8   640x344     16/256K  .   B800 WD90C
  1288.      = T  80x43     8x8      .     16      .   B800 Diamond Speedstar 24X
  1289.      = G    .      .    640x480    256      .    .  Video7 V-RAM VGA
  1290.      = G    .      .    800x600    32K      .   A000 Cirrus CL-GD 5422/5426
  1291.      = G 128x48     8x16 1024x768      4      .   A000 ATI VGA Wonder
  1292.      = G 160x64     8x16 1280x1024     16      .   A000 NCR 77C22 [1,9]
  1293.  69h = T 132x50     8x8  1056x400     16/256K  .   B800 WD90C
  1294.      = T 132x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1295.      = G    .      .    720x540    256      .    .  Video7 V-RAM VGA
  1296.  6Ah = G    .      .    800x600     16      .   A000 VESA standard interface
  1297.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1298.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1299.      = G    .      .    800x600     16      .   A000 Ahead A
  1300.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (VESA) (see 71h)
  1301.      = G    .      .    800x600     16      .    .  Zymos Poach, Hi Res 512
  1302.      = G    .      .    800x600     16      .    .  Epson LT-386SX in CRT Mode
  1303.      = G    .      .    800x600     16      .    .  Compuadd 316SL in CRT Mode
  1304.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1305.      = G 100x42     8x14  800x600      .      .   A000 ATI VGA Wonder (undoc)
  1306.      = G    .      .    800x600     16      .    .  Chips&Technologies chipset
  1307.      = G 160x64     8x16 1280x1024 256      .   A000 NCR 77C22 [1,9]
  1308.  6Bh = T 100x37     8x16      .     16      .    .  Genoa 6400
  1309.      = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1310.  6Ch = G  80x30     8x16  640x480     16M      .   A000 Trident 8900CL/BIOS C04
  1311.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1312.      = G 160x60     8x16 1280x960     16/256K  .   A000 WD90C [1]
  1313.      = G 160x60     8x16 1280x960     16/256K  .   A000 Diamond Speedstar 24X [1]
  1314.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1315.  6Dh = G 160x64     8x16 1280x1024 256/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1316.  6Eh = G  40x25     8x8   320x200     64K      .   A000 Cirrus CL-GD 5422/5426
  1317.  6Fh = G  40x25     8x8   320x200     16M      .   A000 Cirrus CL-GD 5422/5426
  1318.  70h =    extended mode set (see AX=0070h)    .  Everex Micro Enhancer EGA
  1319.      = T  40x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1320.      = T  40x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1321.      = G    .      .    360x480    256      .    .  Cirrus 510/520/5320 chips
  1322.      = G  90x28     8x14  720x392     16      1   A000 Ahead B
  1323.      = G    .      .    800x600     16      .    .  C&T chipset, Cardinal
  1324.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1325.  71h = T  80x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1326.      = T  80x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1327.      = G    .      .    528x400    256      .    .  Cirrus 510/520 chipset
  1328.      = G  80x30     8x16  640x480     16M      .   A000 Cirrus CL-GD 5422/5426
  1329.      = G 100x35     8x16  800x600     16/64      .   A000 NSI Smart EGA+
  1330.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (same as 6Ah)
  1331.      = G    .      .    960x720     16      .    .  C&T chipset, Cardinal
  1332.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1333.  72h = T  80x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1334.      = T  80x60     8x8      .     16      .   B800 Genoa 6400
  1335.      = T  80x60     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1336.      = G    .      .    528x480    256      .    .  Cirrus 510/520 chipset
  1337.      = G    .      .    640x480    32K      .   A000 ATI
  1338.      = G    .      .    640x480    16M      .   A000 WD90C
  1339.      = G    .      .    640x480    16M      .   A000 Diamond Speedstar 24X
  1340.      = G    .      .   1024x768     16      .    .  C&T chipset, Cardinal
  1341.  73h = G  80x60     8x8   640x480     16      .   A000 Quadram Ultra VGA
  1342.      = G  80x60     8x8   640x480     16      .    .  Genoa 6400
  1343.      = G  80x60     8x8   640x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1344.  74h = T  80x66     8x8      .     16      .   B800 Quadram Ultra VGA
  1345.      = T  80x66     8x8      .     16      .   B800 Genoa 6400
  1346.      = T  80x66     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1347.      = G    .      .    640x400      2      .   B800 Toshiba 3100 AT&T mode
  1348.      = G  80x30     8x16  640x480     32K      .   A000 Trident 8900C/BIOS C03
  1349.      = G 128x48     8x16 1024x768     16      1   A000 Ahead A, Ahead B (512K)
  1350.      = G    .      .   1024x768     64K      .   A000 Cirrus CL-GD 5422/5426 [1]
  1351.  75h = G  80x30     8x16  640x480     64K      .   A000 Trident 8900C/BIOS C03
  1352.      = G  80x66      .    640x528     16???      .   A000 Quadram Ultra VGA
  1353.      = G  80x66      .    640x528     16      .    .  Genoa SuperEGA BIOS 3.0+
  1354.      = G 128x48     8x16 1024x768      4      1   A000 Ahead B
  1355.  76h = T  94x29     8x14      .     16      .   B800 Quadram Ultra VGA
  1356.      = T  94x29     8x14      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1357.      = G 100x75     8x8   800x600     32K      .   A000 Trident 8900C/BIOS C03
  1358.      = G 128x48     8x16 1024x768      2      1   A000 Ahead B
  1359.  77h = G  94x29      .    752x410     16???      .   A000 Quadram Ultra VGA
  1360.      = G  94x29      .    752x410     16      .    .  Genoa SuperEGA BIOS 3.0+
  1361.      = G 100x75     8x8   800x600     64K      .   A000 Trident 8900C/BIOS C03
  1362.  78h = T 100x37     8x16      .     16      .    .  Genoa 6400
  1363.      = T 100x75     8x8      .     16      .   B800 Quadram Ultra VGA
  1364.      = T 100x75     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1365.      = G    .      .    640x400    256      .    .  STB VGA/EM-16 Plus
  1366.      = G    .      .    640x400    256      .    .  Cardinal, C&T chipset
  1367.      = G    .      .    640x400    256      .    .  Cirrus 5320 chipset
  1368.  79h = G    .      .    640x480    256      .    .  Cardinal, C&T chipset
  1369.      = G 100x75      .    800x600     16???      .   A000 Quadram Ultra VGA
  1370.      = G 100x75     8x8   800x600     16      .    .  Genoa SuperEGA BIOS 3.0+
  1371.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1372.  7Ah = T 114x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1373.      = T 114x60     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1374.      = G    .      .    720x540    256      .    .  C&T chipset, Cardinal
  1375.  7Bh = G    .      .    800x600    256      .    .  C&T chipset, Cardinal
  1376.      = G 114x60      .    912x480     16???      .   A000 Quadram Ultra VGA
  1377.      = G    .      .    912x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1378.  7Ch = G    .      .    512x512     16      .    .  Genoa
  1379.      = G    .      .    800x600    256      .    .  C&T 82C453 chipset
  1380.  7Dh = G  64x32     8x16  512x512    256      .    .  Genoa
  1381.  7Eh =    special mode set (see AX=007Eh)        .  Paradise VGA, AT&T VDC600
  1382.      = G  80x25     8x16  640x400    256      .    .  Genoa 6400
  1383.      = G    .      .   1024x768    256      .    .  C&T 82C453 chipset
  1384.  7Fh =    special function set (see AX=007Fh)    .  Paradise VGA, AT&T VDC600
  1385.      = G 128x48     8x16 1024x768      4      .    .  Genoa 6400
  1386.  82h = T  80x25      .      .    B&W      .    .  AT&T VDC overlay mode [6]
  1387.  83h = T  80x25      .      .      .      .    .  AT&T VDC overlay mode [6]
  1388.  86h = G    .      .    640x200    B&W      .    .  AT&T VDC overlay mode [6]
  1389.  88h = G  90x43     8x8   720x352    mono      .   B000 Hercules + MSHERC.COM
  1390.  C0h = G    .      .    640x400    2/prog palette    .  AT&T VDC overlay mode [6]
  1391.      = G    .      .    640x400    2/prog palette    .  Olivetti Quaderno overlay
  1392.  C4h =    disable output      .      .      .    .  AT&T VDC overlay mode [6]
  1393.  C8h = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno overlay
  1394.  D0h = G    .      .    640x400      2      .   B800 DEC VAXmate AT&T mode
  1395. Notes:
  1396. [1] interlaced only
  1397. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1398.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1399.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1400.       color) 132x25 character mode.
  1401.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1402.       resident
  1403. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1404. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1405.       22h is page 1) even if there is no Hercules graphics board installed
  1406. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1407. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1408.       40h, or 44h
  1409. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1410.       about 1/3 of the screen (and does even that portion incorrectly), while
  1411.       screen clears only clear about 3/4.
  1412. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1413.       may choose to use only partially or not at all; thus, not all Oak boards
  1414.       support all "Oak" modes listed here
  1415. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1416.       precluding the use of a monochrome adapter in the same system
  1417. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1418.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1419.       09/14/90 version
  1420. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1421.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1422.       beyond the INT 10 handler
  1423. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1424.     21h or 27h; this version of the BIOS also sets the BIOS data area
  1425.     incorrectly for extended text modes, resulting in scrolling after only
  1426.     24 lines (the VMODE.EXE    utility does set the data area correctly)
  1427. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1428. Index:    video modes
  1429. Index:    installation check|HERKULES
  1430. --------V-100070-----------------------------
  1431. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1432.     AX = 0070h
  1433.     BL = mode (see below)
  1434. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1435.       Viewpoint video adapters
  1436. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1437.  
  1438. Values for video mode:
  1439.      text/ text pixel    pixel    colors disply scrn monitor    adapter
  1440.      grph resol     box  resolution       pages  addr
  1441.  00h = G    .      .    640x480     16      .    .  multisync  EGA,VGA
  1442.  01h = G    .      .    752x410     16      .    .  multisync  EGA,VGA
  1443.  02h = G    .      .    800x600     16      .    .  multisync  EGA,VGA
  1444.  03h = T  80x34      .      .      .      .    .  multisync  EGA,VGA
  1445.  04h = T  80x60      .      .      .      .    .  multisync  EGA,VGA
  1446.  05h = T  94x29      .      .      .      .    .  multisync  EGA only
  1447.  06h = T  94x51      .      .      .      .    .  multisync  EGA only
  1448.  07h = T 100x43     8x14      .     16      .    .  .          VGA only
  1449.  08h = T 100x75     8x8      .     16      .    .  .          VGA only
  1450.  09h = T  80x44      .      .      .      .    .  EGA          EGA only
  1451.  0Ah = T 132x25      .      .      .      .    .  EGA          EGA,VGA
  1452.  0Bh = T 132x44      .      .      .      .    .  EGA          EGA,VGA
  1453.  0Ch = T 132x25      .      .      .      .    .  CGA          EGA only
  1454.  0Dh = T  80x44      .      .      .      .    .  mono          EGA only
  1455.  0Eh = T 132x25      .      .      .      .    .  mono
  1456.  0Fh = T 132x44      .      .      .      .    .  mono
  1457.  10h =    reserved
  1458.  11h = G    .      .   1280x350      4      .    .  .          EGA only
  1459.  12h = G    .      .   1280x600      4      .    .  .          EGA only
  1460.  13h = G    .      .    640x350    256      .    .  .          EGA,EV673
  1461.  14h = G    .      .    640x400    256      .    .  .
  1462.  15h = G    .      .    512x480    256      .    .  .
  1463.  16h = T  80x30     8x16      .    256      .    .  .          VGA only
  1464.  18h = T 100x27     8x16      .     16      .    .  .          VGA only
  1465.  20h = G    .      .   1024x768     16      .    .  .          Everex 629,678
  1466.         .      .      .      .      .    .  .          Everex EV-673
  1467.  21h = T 160x64     8x16 1280x1024     16      .    .  .          1MB VGA only
  1468.  30h = G    .      .    640x480    256      .    .  .          Everex 629,678
  1469.         .      .      .      .      .    .  .          Everex EV-673
  1470.  31h = G    .      .    800x600    256      .    .  .          Everex 629,678
  1471.         .      .      .      .      .    .  .          Everex EV-673
  1472.  32h = G 128x48     8x16 1024x768    256      .    .  .          1MB VGA only
  1473.  40h = T 132x30     8x16      .     16      .    .  .          VGA only
  1474.  50h = T 132x32     8x16      .    mono      .    .  .          VGA only
  1475.  62h = G  40x25     8x8   320x200    32K      .    .  .          Vwpt TC (EV629)
  1476.  70h = G  64x30     8x16  512x480    32K      .    .  .          Viewpoint TC
  1477.  71h = G  80x30     8x16  640x480    32K      .    .  .          Viewpoint TC
  1478.  76h = G  64x30     8x16  512x480    16M      .    .  .          Viewpoint TC
  1479.  77h = G  80x30     8x16  640x480    16M      .    .  .          Viewpoint TC
  1480. Index:    video modes
  1481. --------V-10007E-----------------------------
  1482. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1483.     AX = 007Eh
  1484.     BX = horizontal dimension of the mode desired
  1485.     CX = vertical dimension of the mode desired
  1486.          (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1487.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1488. Return: BH = 7Eh if successful (Paradise VGA)
  1489.     AL = 7Eh if successful (AT&T VDC600)
  1490. Desc:    specify a display mode by resolution rather than mode number
  1491. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1492. Index:    video modes
  1493. --------V-10007FBH00-------------------------
  1494. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1495.     AX = 007Fh
  1496.     BH = 00h
  1497. Return: AL = 7Fh if successful (AT&T VDC600)
  1498.     BH = status (Paradise/Dell)
  1499.         00h invalid function
  1500.         7Fh successful
  1501. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1502. --------V-10007FBH01-------------------------
  1503. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1504.     AX = 007Fh
  1505.     BH = 01h
  1506. Return: AL = 7Fh if successful (AT&T VDC600)
  1507.     BH = status (Paradise/Dell)
  1508.         00h invalid function
  1509.         7Fh successful
  1510. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1511.       mode 7 will set non-VGA MDA/Hercules operation
  1512. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1513. --------V-10007FBH02-------------------------
  1514. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1515.     AX = 007Fh
  1516.     BH = 02h
  1517. Return: AL = 7Fh if successful (AT&T VDC600)
  1518.     BH = status (Paradise/Dell)
  1519.         00h invalid function
  1520.         7Fh successful
  1521.     ---if successful---
  1522.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1523.     CH = total video RAM size in 64k byte units
  1524.     CL = video RAM used by the current mode
  1525. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1526. --------V-10007F-----------------------------
  1527. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1528.     AX = 007Fh
  1529.     BH = function
  1530.         03h     lock current mode
  1531.         allows current mode (VGA or non-VGA) to survive re-boot
  1532.         04h     enter MDA mode
  1533.         05h     enter CGA mode
  1534.         06h     enter monochrome VGA mode (also switches to video mode 7)
  1535.         07h     enter color VGA mode (also switches to video mode 3)
  1536.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1537.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1538.         BL = value to set in the paradise register
  1539.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1540.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1541.         Return: BL = value of the paradise register
  1542.             BH = 7Fh if successful
  1543.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1544. Return: AL = 7Fh if successful (AT&T VDC600)
  1545.     BH = status (Paradise/Dell)
  1546.         00h invalid function
  1547.         7Fh successful
  1548. Desc:    set emulation mode or access proprietary extended data registers
  1549. SeeAlso: AX=007Eh,AH=FF"Oak"
  1550. --------V-10007FBH60-------------------------
  1551. INT 10 - Paradise VGA - ???
  1552.     AX = 007Fh
  1553.     BH = 60h
  1554.     BL = ??? (00h-13h)
  1555.     ???
  1556. Return: BH = status (00h failed or not supported, 7Fh successful)
  1557.     ???
  1558. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1559. --------V-10007FBH61-------------------------
  1560. INT 10 - Paradise VGA - ???
  1561.     AX = 007Fh
  1562.     BH = 61h
  1563.     ES:DI -> buffer for list of ??? (see below)
  1564. Return: BH = status (00h failed or not supported, 7Fh successful)
  1565.     ???
  1566. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1567.  
  1568. Format of list entry:
  1569. Offset    Size    Description
  1570.  00h    BYTE    ??? or 00h if end of list
  1571.  01h    BYTE    ???
  1572.  02h    WORD    ???
  1573.  04h    WORD    ???
  1574.  06h    WORD    ???
  1575. --------V-10007FBXA500-----------------------
  1576. INT 10 - Paradise VGA - ???
  1577.     AX = 007Fh
  1578.     BX = A500h
  1579.     ???
  1580. Return: BH = status (00h failed or not supported, 7Fh successful)
  1581.     ???
  1582. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1583. --------V-10007FBHA5-------------------------
  1584. INT 10 - Paradise VGA - ???
  1585.     AX = 007Fh
  1586.     BH = A5h
  1587.     BL = ???
  1588.         bits 3-0: ??? (0-4)
  1589.         bits 5,4: ???
  1590.     ???
  1591. Return: BH = status (00h failed or not supported, 7Fh successful)
  1592.     ???
  1593. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1594. --------V-10007FBHA6-------------------------
  1595. INT 10 - Paradise VGA - ???
  1596.     AX = 007Fh
  1597.     BH = A6h
  1598.     ???
  1599. Return: BH = status (00h failed or not supported, 7Fh successful)
  1600.     ???
  1601. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1602. --------V-1001-------------------------------
  1603. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1604.     AH = 01h
  1605.     CH = cursor start and options (see below)
  1606.     CL = bottom scan line containing cursor (bits 0-4)
  1607. Desc:    specify the starting and ending scan lines to be occupied by the
  1608.       hardware cursor in text modes
  1609. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1610.       returns unmapped cursor shape
  1611.     UltraVision scales size to the current font height by assuming 14-line
  1612.       monochrome and 8-line color fonts; this call is not valid if cursor
  1613.       emulation has been disabled
  1614.     applications which wish to change the cursor by programming the
  1615.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1616.       read 0040h:0085h first to determine the current font height
  1617.     on some adapters, setting the end line greater than the number of lines
  1618.       in the font will result in the cursor extending to the top of the
  1619.       next character cell on the right
  1620. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1621.       is not equal to the current video mode
  1622. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h
  1623.  
  1624. Bitfields for cursor start and options:
  1625. Bit(s)    Description
  1626.  7    should be zero
  1627.  6,5    cursor blink
  1628.     (00=normal, 01=invisible, 10=erratic, 11=slow)
  1629.     (00=normal, other=invisible on EGA/VGA)
  1630.  4-0    topmost scan line containing cursor
  1631. --------V-1002-------------------------------
  1632. INT 10 - VIDEO - SET CURSOR POSITION
  1633.     AH = 02h
  1634.     BH = page number
  1635.         0-3 in modes 2&3
  1636.         0-7 in modes 0&1
  1637.         0 in graphics modes
  1638.     DH = row (00h is top)
  1639.     DL = column (00h is left)
  1640. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
  1641. --------V-1003-------------------------------
  1642. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1643.     AH = 03h
  1644.     BH = page number
  1645.         0-3 in modes 2&3
  1646.         0-7 in modes 0&1
  1647.         0 in graphics modes
  1648. Return: AX = 0000h (Phoenix BIOS)
  1649.     CH = start scan line
  1650.     CL = end scan line
  1651.     DH = row (00h is top)
  1652.     DL = column (00h is left)
  1653. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1654.     many ROM BIOSes incorrectly return the default size for a color display
  1655.       (start 06h, end 07h) when a monochrome display is attached
  1656. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
  1657. --------V-1004-------------------------------
  1658. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1659.     AH = 04h
  1660. Return: AH = light pen trigger flag
  1661.         00h not down/triggered
  1662.         01h down/triggered
  1663.         DH,DL = row,column of character light pen is on
  1664.         CH = pixel row (graphics modes 04h-06h)
  1665.         CX = pixel row (graphics modes with >200 rows)
  1666.         BX = pixel column
  1667. Desc:    determine the current position and status of the light pen (if
  1668.       present)
  1669. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1670.       column modes) or 4 (640-column modes)
  1671.     returned row numbers are only accurate to two lines
  1672. --------V-1004------------------------------------
  1673. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1674.     AH = 04h
  1675.     BH = page
  1676. Return: DH = row (0..24)
  1677.     DL = column (0..79)
  1678.     CH = cursor pixel Y-address (0..199)
  1679.     CL = cursor pixel X-address (0..639)
  1680. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1681.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1682.     pixel coordinates are for the lower left corner of the character cell
  1683.       containing the cursor
  1684. SeeAlso: AH=60h"HUNTER"
  1685. --------V-1005-------------------------------
  1686. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1687.     AH = 05h
  1688.     AL = new page number (00h to number of pages - 1) (see AH=00h)
  1689. Desc:    specify which of possibly multiple display pages will be visible
  1690. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1691.       to query the current page after making this call
  1692. SeeAlso: AH=0Fh,AH=43h,AH=45h
  1693. --------V-1005-------------------------------
  1694. INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
  1695.     AH = 05h
  1696.     AL = subfunction
  1697.         80h read CRT and CPU page registers
  1698.         Return: BH = CRT page register
  1699.             BL = CPU page register
  1700.         81h set CPU page register
  1701.         BL = CPU page
  1702.         82h set CRT page register
  1703.         BH = CRT page
  1704.         83h set both CPU and CRT page registers
  1705.         BL = CPU page
  1706.         BH = CRT page
  1707. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1708.       memory will be mapped at B800h by the hardware
  1709.     the CRT page determines the start address of the memory used by the
  1710.       video controller
  1711. --------V-1005-------------------------------
  1712. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1713.     AH = 05h
  1714.     AL = function
  1715.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1716.         BX = segment of buffer
  1717.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1718.         Return: DX = segment of graphics bitmap buffer
  1719. --------V-1006-------------------------------
  1720. INT 10 - VIDEO - SCROLL UP WINDOW
  1721.     AH = 06h
  1722.     AL = number of lines by which to scroll up (00h = clear entire window)
  1723.     BH = attribute used to write blank lines at bottom of window
  1724.     CH,CL = row,column of window's upper left corner
  1725.     DH,DL = row,column of window's lower right corner
  1726. Note:    affects only the currently active page (see AH=05h)
  1727. Warning: some implementations have a bug which destroys BP
  1728. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1729. --------V-1007-------------------------------
  1730. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1731.     AH = 07h
  1732.     AL = number of lines by which to scroll down (00h=clear entire window)
  1733.     BH = attribute used to write blank lines at top of window
  1734.     CH,CL = row,column of window's upper left corner
  1735.     DH,DL = row,column of window's lower right corner
  1736. Note:    affects only the currently active page (see AH=05h)
  1737. Warning: some implementations have a bug which destroys BP
  1738. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1739. --------V-1008-------------------------------
  1740. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1741.     AH = 08h
  1742.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1743. Return: AH = charater's attribute (see below)
  1744.     AL = character
  1745. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1746.       underlined
  1747.     the blink bit may be reprogrammed to enable intense background colors
  1748.       using AX=1003h or by programming the CRT controller
  1749.     the foreground intensity bit (3) can be programmed to switch between
  1750.       character sets A and B on EGA and VGA cards, thus enabling 512
  1751.       simultaneous characters on screen.  In this case the bit's usual
  1752.       function (intensity) is regularly turned off.
  1753. SeeAlso: AH=09h,AX=1003h,AX=5001h
  1754.  
  1755. Bitfields for character's attribute:
  1756. Bit(s)    Description
  1757.  7    blink
  1758.  6-4    background color
  1759.     000 black    100 red
  1760.     001 blue    101 magenta
  1761.     010 green    110 brown
  1762.     011 cyan    111 white
  1763.  3-0    foreground color
  1764.     0000 black     1000 dark gray
  1765.     0001 blue     1001 light blue
  1766.     0010 green     1010 light green
  1767.     0011 cyan     1011 light cyan
  1768.     0100 red     1100 light red
  1769.     0101 magenta     1101 light magenta
  1770.     0110 brown     1110 yellow
  1771.     0111 light gray     1111 white
  1772. --------V-1009-------------------------------
  1773. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1774.     AH = 09h
  1775.     AL = character to display
  1776.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1777.     BL = attribute (text mode) or color (graphics mode)
  1778.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1779.     CX = number of times to write character
  1780. Notes:    all characters are displayed, including CR, LF, and BS
  1781.     replication count in CX may produce an unpredictable result in graphics
  1782.       modes if it is greater than the number of positions remaining in the
  1783.       current row
  1784. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1785. --------V-100A-------------------------------
  1786. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1787.     AH = 0Ah
  1788.     AL = character to display
  1789.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1790.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  1791.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1792.     CX = number of times to write character
  1793. Notes:    all characters are displayed, including CR, LF, and BS
  1794.     replication count in CX may produce an unpredictable result in graphics
  1795.       modes if it is greater than the number of positions remaining in the
  1796.       current row
  1797. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1798. --------V-100B--BH00-------------------------
  1799. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1800.     AH = 0Bh
  1801.     BH = 00h
  1802.     BL = background/border color (border only in text modes)
  1803. SeeAlso: AH=0Bh/BH=01h
  1804. --------V-100B--BH01-------------------------
  1805. INT 10 - VIDEO - SET PALETTE
  1806.     AH = 0BH
  1807.     BH = 01h
  1808.     BL = palette ID
  1809.         00h background, green, red, and brown/yellow
  1810.         01h background, cyan, magenta, and white
  1811. SeeAlso: AH=0Bh/BH=00h
  1812. --------V-100C-------------------------------
  1813. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1814.     AH = 0Ch
  1815.     BH = page number
  1816.     AL = pixel color (if bit 7 set, value is xor'ed onto screen)
  1817.     CX = column
  1818.     DX = row
  1819. Desc:    set a single pixel on the display in graphics modes
  1820. Notes:    valid only in graphics modes
  1821.     BH is ignored if the current video mode supports only one page
  1822. SeeAlso: AH=0Dh,AH=46h
  1823. --------V-100D-------------------------------
  1824. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1825.     AH = 0Dh
  1826.     BH = page number
  1827.     CX = column
  1828.     DX = row
  1829. Return: AL = pixel color
  1830. Desc:    determine the current color of the specified pixel in grahics modes
  1831. Notes:    valid only in graphics modes
  1832.     BH is ignored if the current video mode supports only one page
  1833. SeeAlso: AH=0Ch,AH=47h
  1834. --------V-100E-------------------------------
  1835. INT 10 - VIDEO - TELETYPE OUTPUT
  1836.     AH = 0Eh
  1837.     AL = character to write
  1838.     BH = page number
  1839.     BL = foreground color (graphics modes only)
  1840. Desc:    display a character on the screen, advancing the cursor and scrolling
  1841.       the screen as necessary
  1842. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1843.       and do the expected things
  1844.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1845.       the current active page
  1846. SeeAlso: AH=02h,AH=0Ah
  1847. --------V-100F-------------------------------
  1848. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  1849.     AH = 0Fh
  1850. Return: AH = number of character columns
  1851.     AL = display mode (see AH=00h)
  1852.     BH = active page (see AH=05h)
  1853. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1854.       also have bit 7 set
  1855.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1856.       (monochrome) in all extended-row text modes
  1857. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  1858. --------V-100F56BX4756-----------------------
  1859. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  1860.     AX = 0F56h
  1861.     BX = 4756h
  1862.     CX = 4944h
  1863.     DL = function
  1864.         01h installation check
  1865.         Return: AX = 5649h
  1866.             BX = 4443h
  1867.             CX = 5647h
  1868.             DH = 01h
  1869.         02h get first video mode's parameters
  1870.         Return: AX = BIOS mode number
  1871.             BX = width in pixels
  1872.             CX = height in pixels
  1873.             DX = number of colors
  1874.         03h get next video mode's parameters
  1875.         Return: as for DL=02h
  1876.         04h display line???
  1877.         ES:DI -> record (see below)
  1878.         ???
  1879.         Return: ???
  1880. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  1881. Note:    the use of TSR display drivers was discontinued after v2.20
  1882. Index:    installation check;VUIMAGE display driver
  1883.  
  1884. Format of record for DL=04h:
  1885. Offset    Size    Description
  1886.  00h    WORD    row number
  1887.  02h    WORD    starting column???
  1888.  04h    WORD    ending column???
  1889.     ???
  1890. --------V-100F--SIF123-----------------------
  1891. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  1892.     AH = 0Fh
  1893.     SI = F123h
  1894.     DI = 321Fh
  1895. Return: AH = number of character columns
  1896.     AL = display mode (see AH=00h)
  1897.     BH = active page (see AH=05h)
  1898.     SI = DI = F345h if installed
  1899. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1900.       also have bit 7 set
  1901.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1902.       (monochrome) in all extended-row text modes
  1903. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  1904. --------V-1010-------------------------------
  1905. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  1906.     AH = 10h
  1907.     CH,CL = row,column of upper left corner of window
  1908.     DH,DL = row,column of lower right corner of window
  1909. Return: AL = status
  1910.         00h successful
  1911.         01h failed
  1912.     AH destroyed
  1913. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  1914. Note:    when a window has been set, all output via AH=0Eh is restricted to
  1915.       the specified window
  1916. SeeAlso: AH=11h"Window",AH=12h"Window"
  1917. --------V-1010-------------------------------
  1918. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  1919.     AH = 10h
  1920.     AL = speed
  1921.         00h fast
  1922.         01h slow (scrolling only moves characters during vertical retrace)
  1923. Return: AH = previous speed
  1924. --------V-101000-----------------------------
  1925. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  1926.     AX = 1000h
  1927.     BL = palette register number (00h-0Fh)
  1928.        = attribute register number (undocumented)
  1929.          10h attribute mode control register (should let BIOS control this)
  1930.          11h overscan color register (see also AX=1001h)
  1931.          12h color plane enable register (bits 3-0 enable corresponding
  1932.         text attribute bit)
  1933.          13h horizontal PEL panning register
  1934.          14h color select register
  1935.     BH = color or attribute register value
  1936. Notes:    on MCGA, only BX = 0712h is supported
  1937.     under UltraVision, the palette locking status (see AX=CD01h)
  1938.       determines the outcome
  1939. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  1940. --------V-101001-----------------------------
  1941. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  1942.     AX = 1001h
  1943.     BH = border color (00h-3Fh)
  1944. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  1945.       and places the border color at offset 11h of the palette table
  1946.       rather than offset 10h
  1947. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1948.       determines the outcome
  1949. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  1950. --------V-101002-----------------------------
  1951. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  1952.     AX = 1002h
  1953.     ES:DX -> palette register list
  1954. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1955.       determines the outcome
  1956. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  1957.  
  1958. Format of palette register list:
  1959. Offset    Size    Description
  1960.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  1961.  10h    BYTE    border color
  1962. --------V-101003-----------------------------
  1963. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  1964.     AX = 1003h
  1965.     BL = new state
  1966.         00h background intensity enabled
  1967.         01h blink enabled
  1968.     BH = 00h to avoid problems on some adapters
  1969. Notes:    although there is no function to get the current status on adapters
  1970.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  1971.       VGA, use AH=1Bh and check offset 2Dh of the returned data
  1972.     when configured for a monochrome display, the Boca Research Multi-EGA
  1973.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  1974.     this call is reported to be "Get Cursor Position" on the Tandy
  1975.       1000SL/TL
  1976. SeeAlso: AH=08h,AH=1Bh
  1977. --------V-101007-----------------------------
  1978. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  1979.     AX = 1007h
  1980.     BL = palette or attribute (undoc) register number (see AX=1000h)
  1981. Return: BH = palette or attribute register value
  1982. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1983.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1984.       registers will cause incorrect results because the EGA registers are
  1985.       write-only.  To guard against older versions or unsupported video
  1986.       modes, programs which expect to use this function on EGA systems
  1987.       should set BH to FFh on entry.
  1988. SeeAlso: AX=1000h,AX=1009h
  1989. --------V-101008-----------------------------
  1990. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  1991.     AX = 1008h
  1992. Return: BH = border color (00h-3Fh)
  1993. Note:    (see AX=1007h)
  1994. SeeAlso: AX=1001h
  1995. --------V-101009-----------------------------
  1996. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  1997.     AX = 1009h
  1998.     ES:DX -> 17-byte buffer (see AX=1002h)
  1999. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2000.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2001.       registers will cause incorrect results because the EGA registers are
  2002.       write-only.  To guard against older versions or unsupported video
  2003.       modes, programs which expect to use this function on EGA systems
  2004.       should set the ES:DX buffer to FFh before calling.
  2005. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2006. --------V-101010-----------------------------
  2007. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2008.     AX = 1010h
  2009.     BX = register number
  2010.     CH = new value for green (0-63)
  2011.     CL = new value for blue (0-63)
  2012.     DH = new value for red (0-63)
  2013. SeeAlso: AX=1012h,AX=1015h
  2014. --------V-101012-----------------------------
  2015. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2016.     AX = 1012h
  2017.     BX = starting color register
  2018.     CX = number of registers to set
  2019.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2020.          byte each of red, green and blue (0-63)
  2021. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2022. --------V-101013-----------------------------
  2023. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2024.     AX = 1013h
  2025.     BL = subfunction
  2026.         00h select paging mode
  2027.         BH = 00h select 4 blocks of 64
  2028.         BH = 01h select 16 blocks of 16
  2029.         01h select page
  2030.         BH = page number (00h to 03h) or (00h to 0Fh)
  2031. Note:    this function is not valid in mode 13h
  2032. SeeAlso: AX=101Ah
  2033. --------V-101015-----------------------------
  2034. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2035.     AX = 1015h
  2036.     BL = palette register number
  2037. Return: DH = red value
  2038.     CH = green value
  2039.     CL = blue value
  2040. SeeAlso: AX=1010h,AX=1017h
  2041. --------V-101017-----------------------------
  2042. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2043.     AX = 1017h
  2044.     BX = starting palette register
  2045.     CX = number of palette registers to read
  2046.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2047. Return: buffer filled with CX red, green and blue triples
  2048. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2049. --------V-101018-----------------------------
  2050. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2051.     AX = 1018h
  2052.     BL = new PEL value
  2053. SeeAlso: AX=1019h
  2054. --------V-101019-----------------------------
  2055. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2056.     AX = 1019h
  2057. Return: BL = value read
  2058. SeeAlso: AX=1018h
  2059. --------V-10101A-----------------------------
  2060. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2061.     AX = 101Ah
  2062. Return: BL = paging mode
  2063.         00h four pages of 64
  2064.         01h sixteen pages of 16
  2065.     BH = current page
  2066. SeeAlso: AX=1013h
  2067. --------V-10101B-----------------------------
  2068. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2069.     AX = 101Bh
  2070.     BX = starting palette register
  2071.     CX = number of registers to convert
  2072. Desc:    convert the RGB values of one or more palette registers such that the
  2073.       resulting values are grays with the same intensities as the original
  2074.       colors
  2075. SeeAlso: AH=12h/BL=33h
  2076. --------V-1010E0-----------------------------
  2077. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2078.     AX = 10E0h
  2079.     BL = video mode (see also AH=00h)
  2080.         2Eh = 640x480
  2081. Return: ???
  2082. SeeAlso: AH=00h,AX=10F0h
  2083. --------V-1010F0-----------------------------
  2084. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2085.     AX = 10F0h
  2086.     BL = video mode (see also AH=00h)
  2087.         13h = 320x200x32K
  2088.         2Dh = 640x350x32K
  2089.         2Eh = 640x480x32K
  2090.         2Fh = 640x400x32K
  2091.         30h = 800x600x32K
  2092.         3Eh = 640x480x16M (Genoa 7900)
  2093.         FFh Tseng 24-bit color mode
  2094.         BH = mode
  2095.             2Dh = 640x480
  2096.             2Eh = 640x480x16M
  2097.             2Fh = 640x400
  2098.             30h = 800x600
  2099.             38h = 1024x768??? (Tseng ET4000/W32i)
  2100. Return: AL = 10h if supported
  2101.     AH = status
  2102.         00h if successful
  2103.         other on error
  2104. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2105. Note:    the Tseng HiColor BIOS extensions are supported by:
  2106.       Diamond Computer Systems    SpeedStar HiColor VGA
  2107.       Everex Systems        HC VGA
  2108.       Focus Information Systems    2theMax 4000
  2109.       Cardinal Technologies        VGA732
  2110.       Orchid ProDesigner IIs    Genoa 7900
  2111. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2112. Index:    video modes
  2113. --------V-1010F1-----------------------------
  2114. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2115.     AX = 10F1h
  2116. Return: AL = 10h if supported
  2117.     BL = type of digital/analog converter
  2118.         00h normal VGA DAC
  2119.         01h Sierra SC1148x HiColor DAC
  2120.         ---Diamond SpeedStar 24---
  2121.         02h new Sierra SS24 DAC (24-bit)
  2122.         ---generic Tseng BIOS v8+ ---
  2123.         02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2124.         03h ATT20c490/1/2 (15/16/24-bit)
  2125.         04h AcuMos ADAC1 (15/16/24-bit)
  2126.         05h unknown 15/16/24-bit DAC
  2127.         06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2128.         07h Diamond SS2410 (15/24-bit)
  2129.         08h unknown 15/16/24-bit DAC
  2130.         09h unknown 15/16/24-bit DAC
  2131.        else other HiColor DAC
  2132. Desc:    determine which type of digital-to-analog converter is installed on the
  2133.       display board
  2134. SeeAlso: AX=10F0h,AX=10F2h
  2135. --------V-1010F2-----------------------------
  2136. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2137.     AX = 10F2h
  2138.     BL = function
  2139.         00h get current HiColor mode
  2140.         01h set 15-bit HiColor mode
  2141.         02h set 16-bit HiColor mode
  2142. Return: AX = 0010h if supported
  2143.     BL = video mode type
  2144.         00h not in HiColor mode
  2145.         01h 15-bit RGB mode
  2146.         02h 16-bit RGB mode
  2147.         03h 24-bit RGB mode
  2148. Desc:    determine whether the display is in a graphics mode with 15 or more
  2149.       bits per pixel color resolution
  2150. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2151. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2152. --------V-1011-------------------------------
  2153. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2154.     AH = 11h
  2155. Return: CH,CL = row,column of upper left corner
  2156.     DH,DL = row,column of lower right corner
  2157. Desc:    determine the portion of the display to which output is restricted
  2158. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2159. SeeAlso: AH=10h"Window",AH=12h"Window"
  2160. --------V-1011-------------------------------
  2161. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2162.     AH = 11h
  2163.     The following functions will cause a mode set, completely resetting
  2164.     the video environment, but without clearing the video buffer
  2165.     AL = 00h, 10h: load user-specified patterns
  2166.         ES:BP -> user table
  2167.         CX      = count of patterns to store
  2168.         DX      = character offset into map 2 block
  2169.         BL      = block to load in map 2
  2170.         BH      = number of bytes per character pattern
  2171.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2172.         BL      = block to load
  2173.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2174.         BL      = block to load
  2175.     AL = 03h: set block specifier
  2176.         BL      = block specifier (see below)
  2177.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2178.         BL    = block to load
  2179. Notes:    The routines called with AL=1xh are designed to be called only
  2180.       immediately after a mode set and are similar to the routines called
  2181.       with AL=0xh, except that:
  2182.           Page 0 must be active.
  2183.           Bytes/character is recalculated.
  2184.           Max character rows is recalculated.
  2185.           CRT buffer length is recalculated.
  2186.           CRTC registers are reprogrammed as follows:
  2187.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2188.              R0A = bytes/char-2 ; cursor start
  2189.              R0B = 0        ; cursor end
  2190.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2191.              R14 = bytes/char    ; underline loc
  2192.                (*** BUG: should be 1 less ***)
  2193.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2194.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2195. SeeAlso: AH=1Bh,AX=CD10h
  2196.  
  2197. Bitfields for block specifier:
  2198. Bit(s)    Description
  2199. ---EGA/MCGA---
  2200.  0,1    block selected by characters with attribute bit 3 clear
  2201.  2,3    block selected by characters with attribute bit 3 set
  2202. ---VGA---
  2203.  0,1,4    block selected by characters with attribute bit 3 clear
  2204.  2,3,5    block selected by characters with attribute bit 3 set
  2205. --------V-1011-------------------------------
  2206. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2207.     AH = 11h
  2208.     AL = 07h load user-specified paterns and recalculate mode parms
  2209.          parameters are the same as for AL = 10h
  2210.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2211.          parameters are the same as for AL = 11h
  2212.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2213.          parameters are the same as for AL = 12h
  2214.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2215.          parameters are the same as for AL = 14h
  2216. Note:    these functions should only be called under the same conditions as
  2217.       AL=1xh (see entry above)
  2218. SeeAlso: AH=11h
  2219. --------V-10110F-----------------------------
  2220. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2221.     AX = 110Fh
  2222.     ES:BP -> user table for INT 1F
  2223. Note:    this function is meant to be called immediately after a mode set;
  2224.       results are unpredictable at other times
  2225. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2226. --------V-101110-----------------------------
  2227. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2228.     AX = 1110h
  2229.     ES:BP -> user table
  2230.     CX = bytes per character
  2231.     BL = row specifier
  2232.         00h user set
  2233.         DL = number of rows
  2234.         01h 14 rows
  2235.         02h 25 rows
  2236.         03h 43 rows
  2237. Note:    this function is meant to be called immediately after a mode set;
  2238.       results are unpredictable at other times
  2239. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2240. --------V-101111-----------------------------
  2241. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2242.     AX = 1111h
  2243.     BL = row specifier (see AX=1121h)
  2244. Note:    this function is meant to be called immediately after a mode set;
  2245.       results are unpredictable at other times
  2246. SeeAlso: AX=110Fh,AX=1110h,AX=1122h
  2247. --------V-101112-----------------------------
  2248. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2249.     AX = 1112h
  2250.     BL = row specifier (see AX=1121h)
  2251. Note:    this function is meant to be called immediately after a mode set;
  2252.       results are unpredictable at other times
  2253. SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
  2254. --------V-101120-----------------------------
  2255. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2256.     AX = 1120h
  2257.     ES:BP -> user table for INT 1F
  2258. Note:    this function is meant to be called immediately after a mode set;
  2259.       results are unpredictable at other times
  2260. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2261. --------V-101121-----------------------------
  2262. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2263.     AX = 1121h
  2264.     ES:BP -> user table
  2265.     CX = bytes per character
  2266.     BL = row specifier
  2267.         00h user set
  2268.         DL = number of rows
  2269.         01h 14 rows
  2270.         02h 25 rows
  2271.         03h 43 rows
  2272. Note:    this function is meant to be called immediately after a mode set;
  2273.       results are unpredictable at other times
  2274. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2275. --------V-101122-----------------------------
  2276. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2277.     AX = 1122h
  2278.     BL = row specifier (see AX=1121h)
  2279. Notes:    this function is meant to be called immediately after a mode set;
  2280.       results are unpredictable at other times
  2281.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2282. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2283. --------V-101123-----------------------------
  2284. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2285.     AX = 1123h
  2286.     BL = row specifier (see AX=1121h)
  2287. Notes:    this function is meant to be called immediately after a mode set;
  2288.       results are unpredictable at other times
  2289.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2290. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2291. --------V-101124-----------------------------
  2292. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2293.     AX = 1124h
  2294.     BL = row specifier (see AX=1121h)
  2295. Notes:    this function is meant to be called immediately after a mode set;
  2296.       results are unpredictable at other times
  2297.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2298. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2299. --------V-101129-----------------------------
  2300. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2301.     AX = 1129h
  2302.     BL = row specifier (see AX=1121h)
  2303. Notes:    this function is meant to be called immediately after a mode set;
  2304.       results are unpredictable at other times
  2305.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2306. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2307. --------V-101130-----------------------------
  2308. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2309.     AX = 1130h
  2310.     BH = pointer specifier
  2311.         00h INT 1Fh pointer
  2312.         01h INT 43h pointer
  2313.         02h ROM 8x14 character font pointer
  2314.         03h ROM 8x8 double dot font pointer
  2315.         04h ROM 8x8 double dot font (high 128 characters)
  2316.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2317.         06h ROM 8x16 font (MCGA, VGA)
  2318.         07h ROM alternate 9x16 font (VGA only)
  2319.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2320.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2321. Return: ES:BP = specified pointer
  2322.     CX    = bytes/character of on-screen font (not the requested font!)
  2323.     DL    = highest character row on screen
  2324. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2325.       8xN font at ES:BP+256N
  2326. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2327.       screen rather than the highest row number (which is one less).
  2328. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2329.  
  2330. Format of alternate font table [array]:
  2331. Offset    Size    Description
  2332.  00h    BYTE    character to be replaced (00h = end of table)
  2333.  01h  N BYTEs    graphics data for character, one byte per scan line
  2334. --------V-101130BX4D4F-----------------------
  2335. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2336.     AX = 1130h
  2337.     BX = 4D4Fh
  2338. Return: CX = 4F4Dh if installed
  2339.         ES:BP -> M10_SCR INT 10 handler
  2340. Program: M10_SCR is a shareware extended text mode and font driver by
  2341.       I.V. Morozov
  2342. SeeAlso: INT 16/AX=4D4Fh
  2343. --------V-1012-------------------------------
  2344. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2345.     AH = 12h
  2346. Return: BH = attribute to use on blanked lines when scrolling
  2347. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2348. SeeAlso: AH=11h"Window",AH=12h"Window"
  2349. --------V-1012--BL10-------------------------
  2350. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2351.     AH = 12h
  2352.     BL = 10h
  2353. Return: BH = 00h color mode in effect (I/O port 3Dxh)
  2354.          01h mono mode in effect (I/O port 3Bxh)
  2355.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2356.     CH = feature bits
  2357.     CL = switch settings (see below)
  2358. Note:    one possible check for the presence of an EGA or later display card
  2359.       is to call this function with BH=FFh; if not present, BH will be
  2360.       unchanged on return
  2361.  
  2362. Bitfields for switch settings:
  2363. Bit(s)    Description
  2364.  0    switch 1 OFF
  2365.  1    switch 2 OFF
  2366.  2    switch 3 OFF
  2367.  3    switch 4 OFF
  2368.  4-7    unused
  2369. --------V-1012--BL11-------------------------
  2370. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2371.     AH = 12h
  2372.     BL = 11h
  2373. Return: AL = 12h if function supported
  2374.         ES:BP -> BIOS info structure
  2375. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2376.  
  2377. Format of Info structure:
  2378. Offset    Size     Description
  2379.  00h    BYTE     ??? (=0)
  2380.  01h    BYTE     OEM Code (00h for original Trident)
  2381.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2382.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2383.  0Ch    WORD     ???
  2384.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2385. --------V-1012--BL12-------------------------
  2386. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2387.     AH = 12h
  2388.     BL = 12h
  2389. Return: AL = 12h if function supported
  2390.         AH = number of 256K banks of RAM installed
  2391. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2392. --------V-1012--BL20-------------------------
  2393. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2394.     AH = 12h
  2395.     BL = 20h  select alternate print screen routine
  2396. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2397.       default PrtSc handler from the ROM BIOS, which usually does not
  2398.       understand screen heights other than 25 lines
  2399. Note:    some adapters disable print-screen instead of enhancing it
  2400. SeeAlso: INT 05
  2401. --------V-1012--BL2E-------------------------
  2402. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2403.     AH = 12h
  2404.     BL = 2Eh
  2405. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2406.       crash the system on this function
  2407. --------V-1012--BL30-------------------------
  2408. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2409.     AH = 12h
  2410.     BL = 30h
  2411.     AL = vertical resolution
  2412.          00h 200 scan lines
  2413.          01h 350 scan lines
  2414.          02h 400 scan lines
  2415. Return: AL = 12h if function supported
  2416. Desc:    specify the number of scan lines used to display text modes
  2417. Note:    the specified resolution will take effect on the next mode set
  2418. SeeAlso: AH=00h
  2419. --------V-1012--BL31-------------------------
  2420. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2421.     AH = 12h
  2422.     BL = 31h
  2423.     AL = new state
  2424.         00h enable default palette loading
  2425.         01h disable default palette loading
  2426. Return: AL = 12h if function supported
  2427. Desc:    specify whether a default palette should be loaded when the display
  2428.       mode is set
  2429. SeeAlso: AH=00h
  2430. --------V-1012--BL32-------------------------
  2431. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2432.     AH = 12h
  2433.     BL = 32h
  2434.     AL = new state
  2435.         00h enable video addressing
  2436.         01h disable video addressing
  2437. Return: AL = 12h if function supported
  2438. Desc:    specify whether the CPU should have access to video memory and the
  2439.       display adapters I/O registers
  2440. --------V-1012--BL33-------------------------
  2441. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2442.     AH = 12h
  2443.     BL = 33h
  2444.     AL = new state
  2445.         00h enable gray scale summing
  2446.         01h disable gray scale summing
  2447. Return: AL = 12h if function supported
  2448. Desc:    specify whether or not colors should be converted to gray scale when
  2449.       palette or color registers are loaded
  2450. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2451. --------V-1012--BL34-------------------------
  2452. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2453.     AH = 12h
  2454.     BL = 34h
  2455.     AL = new state
  2456.         00h enable alphanumeric cursor emulation
  2457.         01h disable alphanumeric cursor emulation
  2458. Return: AL = 12h if function supported
  2459. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2460.       according to the current character height in text modes
  2461. SeeAlso: AH=01h,AH=03h
  2462. --------V-1012--BL35-------------------------
  2463. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2464.     AH = 12h
  2465.     BL = 35h
  2466.     AL = subfunction
  2467.         00h initial adapter video off
  2468.         01h initial planar video on
  2469.         02h switch active video off
  2470.         03h switch inactive video on
  2471.         80h *UNDOCUMENTED* set system board video active flag
  2472.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2473. Return: AL = 12h if function supported
  2474. Desc:    switch between two video adapters which may otherwise have address
  2475.       conflicts
  2476. --------V-1012--BL36-------------------------
  2477. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2478.     AH = 12h
  2479.     BL = 36h
  2480.     AL = new state
  2481.         00h enable refresh
  2482.         01h disable refresh
  2483. Return: AL = 12h if function supported
  2484. Desc:    specify whether the contents of video memory should be displayed on
  2485.       the screen; disabling refresh effectively blanks the screen
  2486. SeeAlso: AX=BF05h
  2487. --------V-1012--BL53-------------------------
  2488. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2489.     AH = 12h
  2490.     BL = 53h
  2491. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2492.       crash the system on this function
  2493. --------V-1012--BL57-------------------------
  2494. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2495.     AH = 12h
  2496.     BL = 57h
  2497. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2498.       crash the system on this function
  2499. --------V-1012--BH55-------------------------
  2500. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2501.     AH = 12h
  2502.     BH = 55h
  2503.     BL = subfunction
  2504.         00h disable enhanced features
  2505.         01h enable enhanced features
  2506.         02h get status
  2507.         Return: AL = status flags (see below)
  2508.         03h disable register trapping (CGA emulation)
  2509.         04h enable register trapping
  2510.         05h program video mode
  2511.         ES:BP -> video mode table (see below)
  2512.         06h get mode table
  2513.         AL = video mode
  2514.         Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  2515.             BP = FFFFh on error
  2516. SeeAlso: AH=FFh"Oak"
  2517.  
  2518. Bitfields for status flags:
  2519. Bit(s)    Description
  2520.  3    set if enhanced features enabled
  2521.  7-5    monitor type
  2522.     000 PS/2 mono
  2523.     001 PS/2 color
  2524.     010 multi-sync
  2525.     011 Taxan 650 25kHz
  2526.     100 RGB
  2527.     101 mono
  2528.     110 EGA
  2529.     111 Compaq internal
  2530.  
  2531. Format of ATI VGA Wonder video mode table:
  2532. Offset    Size    Description
  2533.  00h    BYTE    number of columns
  2534.  01h    BYTE    maximum row (number of rows - 1)
  2535.  02h    BYTE    scan lines per row
  2536.  03h    WORD    video buffer size in bytes
  2537.  05h  4 BYTEs    values for Sequencer registers 1-4
  2538.  09h    BYTE    value for Miscellaneous Output register
  2539.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2540.         00h horizontal total size (chars)
  2541.         01h horizontal displayed (chars)
  2542.         02h horizontal sync position (chars)
  2543.         03h horizontal sync width (chars)
  2544.         04h vertical total size (char rows)
  2545.         05h vertical total adjust (scan lines)
  2546.         06h vertical displayed (char rows)
  2547.         07h vertical sync position (char rows)
  2548.         08h interlace mode
  2549.         09h max scan line in row
  2550.         0Ah cursor start scan line
  2551.         0Bh cursor end scan line
  2552.         0Ch screen memory start (high)
  2553.         0Dh screen memory start (low)
  2554.         0Eh cursor address (high)
  2555.         0Fh cursor address (low)
  2556.         10h light pen (high)
  2557.         11h light pen (low)
  2558.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2559.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2560. --------V-1012--BL74-------------------------
  2561. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2562.     AH = 12h
  2563.     BL = 74h
  2564. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2565.       crash the system on this function
  2566. --------V-1012--BL80-------------------------
  2567. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2568.     AH = 12h
  2569.     BL = 80h
  2570. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2571.       crash the system on this function
  2572. --------V-1012--BL80-------------------------
  2573. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2574.     AH = 12h
  2575.     BL = 80h
  2576. Return: AX = controller type in bits 13-0 (see below)
  2577.         bit 14: ???
  2578.         bit 15: ???
  2579.     BL = silicon revision number (bit 7 set if not available)
  2580. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2581.  
  2582. Values for controller type:
  2583.  0000h    no extended alternate select support
  2584.  0002h    510/520
  2585.  0003h    610/620
  2586.  0004h    5320
  2587.  0005h    6410
  2588.  0006h    5410
  2589.  0007h    6420
  2590.  0008h    6412
  2591.  0010h    5401
  2592.  0011h    5402
  2593.  0012h    5420
  2594.  0013h    5422
  2595.  0014h    5424
  2596.  0015h    5426
  2597.  0016h    5420r1
  2598.  0017h    5402r1
  2599.  0018h    5428
  2600.  0020h    6205/15/25
  2601.  0030h    5432
  2602.  0031h    5434
  2603. --------V-1012--BL81-------------------------
  2604. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2605.     AH = 12h
  2606.     BL = 81h
  2607. Return: AH = BIOS major version
  2608.     AL = BIOS minor version
  2609. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2610. --------V-1012--BL82-------------------------
  2611. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2612.     AH = 12h
  2613.     BL = 82h
  2614. Return: AL = chip revision
  2615.     AH = ??? (AFh for v1.01)
  2616. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2617. ----------1012--BL84-------------------------
  2618. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  2619.     AH = 12h
  2620.     BL = 84h
  2621. Return: AX = user options word (see below)
  2622. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2623. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  2624.  
  2625. Bitfields for user options word:
  2626. Bit(s)    Description
  2627.  1,0    centering
  2628.     00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  2629.  3,2    720-dot fix-up options
  2630.     00 OR every 8th and 9th pixel
  2631.     01 display MGA mode from left
  2632.     10 display MGA mode from right
  2633.     11 skip every 9th pixel
  2634.  4    ???
  2635.  7-5    video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  2636.  8    external monitor enabled instead of LCD panel
  2637.  9    vertical expand mode enabled
  2638.  10    8-bit mode instead of 16-bit mode
  2639.  11    normal video rather than reverse video (for LCD)
  2640.  12    attribute automap rather than attribute emulation
  2641.  13    bold mode disabled (default)
  2642.  14    fast bandwidth
  2643.  15    ???
  2644. --------V-1012--BL85-------------------------
  2645. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2646.     AH = 12h
  2647.     BL = 85h
  2648. Return: AL = number of 64K banks of video memory
  2649. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2650. --------V-1012--BL89-------------------------
  2651. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  2652.     AH = 12h
  2653.     BL = 89h
  2654.     AL = new state (00h enabled, 01h disabled)
  2655. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  2656. --------V-1012--BL8A-------------------------
  2657. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  2658.     AH = 12h
  2659.     BL = 8Ah
  2660.     AL = new gray-scale color (00h = black to 0Fh = white)
  2661. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  2662. --------V-1012--BL8B-------------------------
  2663. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  2664.     AH = 12h
  2665.     BL = 8Bh
  2666.     AL = new state (00h enabled, 01h disabled)
  2667. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2668. --------V-1012--BL8C-------------------------
  2669. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  2670.     AH = 12h
  2671.     BL = 8Ch
  2672.     AL = new state
  2673.         00h enable automap
  2674.         01h disable automap and emulate attributes
  2675. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  2676. --------V-1012--BL8F-------------------------
  2677. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  2678.     AH = 12h
  2679.     BL = 8Fh
  2680.     AL = new state (00h enabled, 01h disabled)
  2681. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  2682.       full screen
  2683. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  2684. --------V-1012--BL90-------------------------
  2685. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  2686.     AH = 12h
  2687.     BL = 90h
  2688.     AL = new position
  2689.         00h centered
  2690.         01h from top
  2691.         02h from bottom
  2692.         03h from top
  2693. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  2694. --------V-1012--BL91-------------------------
  2695. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  2696.     AH = 12h
  2697.     BL = 91h
  2698.     AL = new mode
  2699.         00h display MGA mode from left of screen (default)
  2700.         01h display MGA from right
  2701.         02h skip every ninth pixel
  2702.         03h OR every 8th and 9th pixel
  2703. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  2704. --------V-1012--BL92-------------------------
  2705. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  2706.     AH = 12h
  2707.     BL = 92h
  2708.     AL = new display (00h LCD, 01h external monitor)
  2709. Note:    the deselected display is disabled
  2710. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  2711. --------V-1012--BL93-------------------------
  2712. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2713.     AH = 12h
  2714.     BL = 93h
  2715.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2716. SeeAlso: AH=12h/BL=9Ah
  2717. --------V-1012--BL94-------------------------
  2718. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  2719.     AH = 12h
  2720.     BL = 94h
  2721.     AL = new state (00h wake up monitor, 01h shut down display)
  2722. Note:    AL=01h is reported not to work properly on the LCD panel
  2723. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  2724. --------V-1012--BL9A-------------------------
  2725. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2726.     AH = 12h
  2727.     BL = 9Ah
  2728. Return: AX = options word 1 (see below)
  2729.     CX = options word 2 (see below)
  2730. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  2731. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
  2732.  
  2733. Bitfields for options word 1:
  2734. Bit(s)    Description
  2735.  0,1    reserved
  2736.  2-4    monitor type
  2737.  5-6    maximum vertical resolution
  2738.  7-9    reserved
  2739.  10    force 8-bit operation
  2740.  11-13    reserved
  2741.  14    vertical refresh frequency at 640x480
  2742.  15    reserved
  2743.  
  2744. Bitfields for options word 2:
  2745. Bit(s)    Description
  2746.  0-3    reserved
  2747.  4-5    vertical refresh frequency at 1280x1024
  2748.  6-10    reserved
  2749.  11-12    vertical refresh frequency at 800x600
  2750.  13-15    vertical refresh frequency at 1024x768
  2751. --------V-1012--BLA0-------------------------
  2752. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2753.     AH = 12h
  2754.     BL = A0h
  2755.     AL = video mode number (00h-7Fh)
  2756. Return: AH bit 0: video mode supported
  2757.     BX = offset of BIOS subroutine to fixup standard video parameters
  2758.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2759.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2760.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2761. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2762. --------V-1012--BLA1-------------------------
  2763. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  2764.     AH = 12h
  2765.     BL = A1h
  2766. Return: BH = monitor ID (see below)
  2767.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  2768. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  2769.  
  2770. Values for monitor ID:
  2771.  00h-08h reserved
  2772.  09h    IBM 8604/8507 or equivalent
  2773.  0Ah    IBM 8514 or equivalent
  2774.  0Bh    IBM 8515 or equivalent
  2775.  0Dh    IBM 8503 or equivalent
  2776.  0Eh    IBM 8512/8513 or equivalent
  2777.  0Fh    no monitor
  2778. --------V-1012--BLA2-------------------------
  2779. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  2780.     AH = 12h
  2781.     BL = A2h
  2782.     AL = retrace rate
  2783.         00h standard VGA (31.5 kHz)
  2784.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  2785.         02h SuperVGA (31.5-35.1 kHz)
  2786.         03h extended SuperVGA (31.5-35.5 kHz)
  2787.         04h multi-frequency (31.5-37.8 kHz)
  2788.         05h extended multi-frequency (31.5-48.0 kHz)
  2789.         06h super multi-frequency (31.5-56.0 kHz)
  2790.         07h extended super multi-frequency (31.5-64.0 kHz)
  2791. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  2792. --------V-1012--BLA3-------------------------
  2793. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  2794.     AH = 12h
  2795.     BL = A3h
  2796.     AL = refresh rate for 640x480 (00h normal, 01h high)
  2797. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  2798. --------V-1012--BLA4-------------------------
  2799. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  2800.     AH = 12h
  2801.     BL = A4h
  2802.     AL bits 3-0 = maximum vertical resolution
  2803.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  2804.     AL bits 7-4 = vertical refresh at 640x480
  2805.         (0 = 60Hz, 1 = 72Hz, other reserved)
  2806.     BH bits 3-0 = vertical refresh at 800x600
  2807.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  2808.     BH bits 7-4 = vertical refresh at 1024x768
  2809.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  2810.     CH bits 4-7 = vertical refresh at 1280x1024
  2811.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  2812. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  2813. --------V-1012--BLBE-------------------------
  2814. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2815.     AH = 12h
  2816.     BL = BEh
  2817. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2818.       crash the system on this function
  2819. --------V-1012--BLC6-------------------------
  2820. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2821.     AH = 12h
  2822.     BL = C6h
  2823. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2824.       crash the system on this function
  2825. --------V-1012--BLF0-------------------------
  2826. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2827.     AH = 12h
  2828.     BL = F0h
  2829. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2830.       crash the system on this function
  2831. --------V-1013-------------------------------
  2832. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  2833.     AH = 13h
  2834.     AL = write mode
  2835.        bit 0: update cursor after writing
  2836.        bit 1: string contains alternating characters and attributes
  2837.     BH = page number
  2838.     BL = attribute if string contains only characters
  2839.     CX = number of characters in string
  2840.     DH,DL = row,column at which to start writing
  2841.     ES:BP -> string to write
  2842. Notes:    recognizes CR, LF, BS, and bell
  2843.     also available PC or XT with EGA or higher
  2844.     HP 95LX only supports write mode 00h
  2845. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  2846.       the active page rather than the requested page
  2847. SeeAlso: AH=09h,AH=0Ah
  2848. --------V-101400-----------------------------
  2849. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  2850.     AX = 1400h
  2851.     ES:DI -> character font
  2852.     BH = number of bytes per character
  2853.         08h or 10h (Compaq)
  2854.     BL = 00h load main font (block 0)
  2855.          01h load alternate font (block 1)
  2856.     CX = number of characters to store
  2857.     DX = character offset into RAM font area
  2858. SeeAlso: AH=11h,AX=1401h
  2859. --------V-101401-----------------------------
  2860. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  2861.     AX = 1401h
  2862.     BL = font to load
  2863.         00h main font (block 0)
  2864.         01h alternate font (block 1)
  2865. SeeAlso: AH=11h,AX=1400h
  2866. --------V-101402-----------------------------
  2867. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  2868.     AX = 1402h
  2869.     BL = function
  2870.         00h ignore high intensity attribute
  2871.         01h map high intensity to underscore
  2872.         02h map high intensity to reverse video
  2873.         03h map high intensity to selected alternate font
  2874.         B0h half intensity (Compaq)
  2875.         B1h toggle active intensity bit interpretation (CP386)
  2876. --------V-1015-------------------------------
  2877. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  2878.     AH = 15h
  2879. Return: AX = alternate display adapter type (see below)
  2880.     ES:DI -> parameter table (see below)
  2881. SeeAlso: AH=1Bh
  2882.  
  2883. Values for alternate display adapter type:
  2884.  0000h    none
  2885.  5140h    LCD
  2886.  5153h    CGA
  2887.  5151h    mono
  2888.  
  2889. Format of display parameter table:
  2890. Offset    Size    Description
  2891.  00h    WORD    monitor model number
  2892.  02h    WORD    vertical pixels per meter
  2893.  04h    WORD    horizontal pixels per meter
  2894.  06h    WORD    total vertical pixels
  2895.  08h    WORD    total horizontal pixels
  2896.  0Ah    WORD    horizontal pixel separation in micrometers
  2897.  0Ch    WORD    vertical pixel separation in micrometers
  2898. --------V-1015-------------------------------
  2899. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  2900.     AH = 15h
  2901.     AL = superimpose mode
  2902.         00h show graphics screen
  2903.         01h show text screen
  2904.         02h show text screen superimposed on graphics screen
  2905. --------V-101A00-----------------------------
  2906. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2907.     AX = 1A00h
  2908. Return: AL = 1Ah if function was supported
  2909.         BL = active display code (see below)
  2910.         BH = alternate display code
  2911. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  2912.  
  2913. Values for display combination code:
  2914.  00h    no display
  2915.  01h    monochrome adapter w/ monochrome display
  2916.  02h    CGA w/ color display
  2917.  03h    reserved
  2918.  04h    EGA w/ color display
  2919.  05h    EGA w/ monochrome display
  2920.  06h    PGA w/ color display
  2921.  07h    VGA w/ monochrome analog display
  2922.  08h    VGA w/ color analog display
  2923.  09h    reserved
  2924.  0Ah    MCGA w/ digital color display
  2925.  0Bh    MCGA w/ monochrome analog display
  2926.  0Ch    MCGA w/ color analog display
  2927.  FFh    unknown display type
  2928. --------V-101A01-----------------------------
  2929. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2930.     AX = 1A01h
  2931.     BL = active display code (see AX=1A00h)
  2932.     BH = alternate display code
  2933. Return: AL = 1Ah if function was supported
  2934. SeeAlso: AH=12h/BL=35h,AX=1A00h
  2935. --------V-101B-------------------------------
  2936. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  2937.     AH = 1Bh
  2938.     BX = implementation type
  2939.         0000h return funtionality/state information
  2940.     ES:DI -> 64-byte buffer for state information (see below)
  2941. Return: AL = 1Bh if function supported
  2942.         ES:DI buffer filled with state information
  2943. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  2944.       do not correctly set the fields at offsets 27h and 29h of the
  2945.       state information
  2946. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  2947.  
  2948. Format of state information:
  2949. Offset    Size    Description
  2950.  00h    DWORD    address of static funtionality table (see below)
  2951.  04h    BYTE    video mode in effect
  2952.  05h    WORD    number of columns
  2953.  07h    WORD    length of regen buffer in bytes
  2954.  09h    WORD    starting address of regen buffer
  2955.  0Bh    WORD    cursor position for page 0
  2956.  0Dh    WORD    cursor position for page 1
  2957.  0Fh    WORD    cursor position for page 2
  2958.  11h    WORD    cursor position for page 3
  2959.  13h    WORD    cursor position for page 4
  2960.  15h    WORD    cursor position for page 5
  2961.  17h    WORD    cursor position for page 6
  2962.  19h    WORD    cursor position for page 7
  2963.  1Bh    WORD    cursor type
  2964.  1Dh    BYTE    active display page
  2965.  1Eh    WORD    CRTC port address
  2966.  20h    BYTE    current setting of register (3?8)
  2967.  21h    BYTE    current setting of register (3?9)
  2968.  22h    BYTE    number of rows
  2969.  23h    WORD    bytes/character
  2970.  25h    BYTE    display combination code of active display
  2971.  26h    BYTE    DCC of alternate display
  2972.  27h    WORD    number of colors supported in current mode
  2973.  29h    BYTE    number of pages supported in current mode
  2974.  2Ah    BYTE    number of scan lines active
  2975.         (0,1,2,3) = (200,350,400,480)
  2976.         Tseng ET3000: (4,5,6 = 512,600,768)
  2977.  2Bh    BYTE    primary character block
  2978.  2Ch    BYTE    secondary character block
  2979.  2Dh    BYTE    miscellaneous flags (see below)
  2980.  2Eh  3 BYTEs    reserved (00h)
  2981.  31h    BYTE    video memory available
  2982.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  2983.  32h    BYTE    save pointer state flags (see below)
  2984.  33h 13 BYTEs    reserved (00h)
  2985.  
  2986. Bitfields for miscellaneous flags:
  2987. Bit(s)    Description
  2988.  0    all modes on all displays on
  2989.  1    gray summing on
  2990.  2    monochrome display attached
  2991.  3    default palette loading disabled
  2992.  4    cursor emulation enabled
  2993.  5    0 = intensity; 1 = blinking
  2994.  6    PS/2 P70 plasma display (without 9-dot wide font) active
  2995.  7    reserved
  2996.  
  2997. Bitfields for save pointer state flags:
  2998. Bit(s)    Description
  2999.  0    512 character set active
  3000.  1    dynamic save area present
  3001.  2    alpha font override active
  3002.  3    graphics font override active
  3003.  4    palette override active
  3004.  5    DCC override active
  3005.  6-7    reserved
  3006.  
  3007. Format of Static Functionality Table:
  3008. Offset    Size    Description
  3009.  00h    BYTE    modes supported 1
  3010.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
  3011.  01h    BYTE    modes supported 2
  3012.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3013.  02h    BYTE    modes supported 3
  3014.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3015.         bit 4 to bit 7 reserved
  3016.  03h    BYTE    (IBM) reserved
  3017.         (Tseng ET3000/4000) modes supported 4
  3018.                 bit 0 to bit 7 = modes 18h-1Fh supported
  3019.  04h    BYTE    (IBM) reserved
  3020.         (Tseng ET3000/4000) modes supported 5
  3021.                 bit 0 to bit 7 = modes 20h-27h supported
  3022.  05h    BYTE    (IBM) reserved
  3023.         (Tseng ET3000/4000) modes supported 6
  3024.                 bit 0 to bit 7 = modes 28h-2Fh supported
  3025.  06h    BYTE    (IBM) reserved
  3026.         (Tseng ET3000/4000) modes supported 7
  3027.                 bit 0 to bit 7 = modes 30h-37h supported
  3028.  07h    BYTE    scan lines supported
  3029.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3030.  08h    BYTE    total number of character blocks available in text modes
  3031.  09h    BYTE    maximum number of active character blocks in text modes
  3032.  0Ah    WORD    miscellaneous function support flags (see below)
  3033.  0Ch    WORD    reserved
  3034.  0Eh    BYTE    save pointer function flags (see below)
  3035.  0Fh    BYTE    reserved
  3036.  
  3037. Bitfields for miscellaneous function support flags:
  3038. Bit(s)    Description
  3039.  0    all modes on all displays function supported
  3040.  1    gray summing function supported
  3041.  2    character font loading function supported
  3042.  3    default palette loading enable/disable supported
  3043.  4    cursor emulation function supported
  3044.  5    EGA palette present
  3045.  6    color palette present
  3046.  7    color paging function supported
  3047.  8    light pen supported
  3048.  9    save/restore state function 1Ch supported
  3049.  10    intensity blinking function supported
  3050.  11    Display Combination Code supported
  3051.  12-15    reserved
  3052.  
  3053. Bitfields for save pointer function flags:
  3054. Bit(s)    Description
  3055.  0    512 character set supported
  3056.  1    dynamic save area supported
  3057.  2    alpha font override supported
  3058.  3    graphics font override supported
  3059.  4    palette override supported
  3060.  5    DCC extension supported
  3061.  6-7    reserved
  3062. --------V-101C-------------------------------
  3063. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3064.     AH = 1Ch
  3065.     AL = function
  3066.         00h return state buffer size
  3067.         Return: BX = number of 64-byte blocks needed
  3068.         01h save video state
  3069.         ES:BX -> buffer
  3070.         02h restore video state
  3071.         ES:BX -> buffer containing previously saved state
  3072.     CX = requested states (see below)
  3073. Return: AL = 1Ch if function supported
  3074. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3075.       program should restore the state immediately after saving it (the
  3076.       saved data is uncorrupted)
  3077.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3078.  
  3079. Bitfields for requested states:
  3080. Bit(s)    Description
  3081.  0    video hardware
  3082.  1    BIOS data areas
  3083.  2    color registers and DAC state
  3084.  3-15    reserved
  3085.  
  3086. Format of video hardware state:
  3087. Offset    Size    Description
  3088.  00h    BYTE    sequencer index register
  3089.  01h    BYTE    CRTC index register
  3090.  02h    BYTE    graphics controller index register
  3091.  03h    BYTE    attribute controller index register
  3092.  04h    BYTE    feature controller register
  3093.  05h  4 BYTEs    sequencer registers
  3094.  09h    BYTE    sequencer register 0
  3095.  0Ah 25 BYTEs    CRTC registers 0-8
  3096.  23h 16 BYTEs    palette registers 00h-0Fh
  3097.  33h  4 BYTEs    attribute registers 10h-13h
  3098.  37h  9 BYTEs    graphics controller registers 0-8
  3099.  40h    BYTE    CRTC base address (low)
  3100.  41h    BYTE    CRTC base address (high)
  3101.  42h    BYTE    plane 0 latch
  3102.  43h    BYTE    plane 1 latch
  3103.  44h    BYTE    plane 2 latch
  3104.  45h    BYTE    plane 3 latch
  3105.  
  3106. Format of DAC state:
  3107. Offset    Size    Description
  3108.  00h    BYTE    read/write mode DAC
  3109.  01h    BYTE    pixel address
  3110.  02h    BYTE    pixel mask
  3111.  03h 768 BYTEs    color data (256 triples)
  3112. 303h    BYTE    color select register
  3113. --------V-101D-------------------------------
  3114. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3115.     AH = 1Dh
  3116.     AL = video mode
  3117.     ES = caller's segment
  3118. Return: nothing
  3119. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3120.       or 100h a table with sync parameters (BIOS looks at both offsets)
  3121.  
  3122. Format of sync table:
  3123. Offset    Size    Description
  3124.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3125.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3126.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3127.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3128. --------V-101D-------------------------------
  3129. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3130.     AH = 1Dh
  3131. Note:    these versions of the BIOS jump to a random location on this function
  3132.       due to a fencepost error
  3133. --------V-101F00-----------------------------
  3134. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3135.     AX = 1F00h
  3136. Return: AL = 1Fh if supported
  3137.         BX = number of bytes of DMQS data
  3138. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3139.       and later models.
  3140. SeeAlso: AX=1F01h
  3141. --------V-101F01-----------------------------
  3142. INT 10 - VIDEO - XGA - READ DMQS DATA
  3143.     AX = 1F01h
  3144.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3145. Return: AL = 1Fh if function supported
  3146.     user buffer filled with DMQS data, see below.
  3147. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3148.       and later models.
  3149. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3150.  
  3151. Format of DMQS buffer:
  3152. Offset    Size    Description
  3153.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3154.  02h    BYTE    slot number
  3155.  03h    BYTE    XGA implementation function level identifier
  3156.  04h    BYTE    XGA implementation resolution level identifier
  3157.  05h    WORD    vendor identifier - identifies card vendor
  3158.  07h    WORD    vendor defined field
  3159.  09h    WORD    XGA adapter I/O register base address
  3160.  0Bh    WORD    XGA coprocessor register base address
  3161.         (paragraph--multiply by 10h to get physical address)
  3162.  0Dh    WORD    1 Megabyte system video memory aperture
  3163.         0000h if not allocated
  3164.         (Multiply by 100000h to get physical address)
  3165.  0Fh    WORD    4 Megabyte system video memory aperture
  3166.         0000h if not allocated
  3167.         (multiply by 100000h to get physical address)
  3168.  11h    WORD    video memory base address
  3169.         (multiply by 100000h to get physical address)
  3170.  13h    WORD    composite ID of the attached display
  3171.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3172.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3173.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3174. Note:    "Instances" refers to the capability of having up to 8 XGA
  3175.       adapters in one computer.
  3176. --------V-103000CX0000-----------------------
  3177. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3178.     AX = 3000h
  3179.     CX = 0000h
  3180.     DX = 0000h
  3181. Return: CX:DX -> 3270PC configuration table (see below)
  3182.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3183. SeeAlso: AX=1F01h
  3184.  
  3185. Format of 3270 PC configuration table:
  3186. Offset    Size    Description
  3187.  00h    BYTE    aspect ratio X
  3188.  01h    BYTE    aspect ratio Y
  3189.  02h    BYTE    monitor type (see below)
  3190.  03h    BYTE    reserved
  3191.  04h    BYTE    adapter ID
  3192.         00h = 5151/5272 adapter
  3193.         04h = 5151/5272 with XGA adapter
  3194.         30h = 3295 or 3270PC G/GX adapter
  3195.  05h    BYTE    reserved
  3196.  06h    BYTE    function flags 1 (see below)
  3197.  07h    BYTE    function flags 2
  3198.         bit 6: GPI graphics supported
  3199.  08h    WORD    segment address of Control Program Level table (see below)
  3200.  0Ah 10 BYTEs    reserved
  3201.  
  3202. Values for monitor type:
  3203.  00h    5151 (mono) or 5272 (color)
  3204.  01h    3295
  3205.  02h    5151 or 5272 with XGA (???) graphics adapter
  3206.  03h    5279 with 3270PC G adapter
  3207.  04h    5379 model C01 with 3270PC GX adapter
  3208.  05h    5379 model M01 with 3270PC GX adapter
  3209.  07h    non-3270PC with 3270 Workstation Program
  3210.  FFh    3270PC Control Program not loaded
  3211.  
  3212. Bitfields for function flags 1:
  3213. Bit(s)    Description
  3214.  7    mono text, 1 page
  3215.  6    color text, 1 page
  3216.  5    color text, 4 pages
  3217.  4    CGA color graphics
  3218.  3    720x350 two-color graphics
  3219.  2    360x350 four-color graphics
  3220.  1    720x350 eight-color graphics
  3221.  
  3222. Format of Control Program Level table:
  3223. Offset    Size    Description
  3224.  00h    WORD    program version
  3225.         02xxh = 3270PC Control Program v2.xx
  3226.         03xxh = 3270PC Control Program v3.xx
  3227.         04xxh = 3270 Workstation Program v1.xx
  3228.  02h    BYTE    Control Program ID (00h)
  3229.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3230. --------a-103800-----------------------------
  3231. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3232.     AX = 3800h
  3233. Return: ES:DI -> configuration info (see below)
  3234. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3235. Notes:    this call is also used as the installation check by verifying that the
  3236.       returned ES:DI points at valid configuration info
  3237.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3238.       v1.10 adds several subfunctions selected with AL
  3239. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3240. SeeAlso: INT 2F/FB00h"AutoBraille"
  3241. Index:    installation check;Tinytalk Personal
  3242.  
  3243. Format of configuration info:
  3244. Offset    Size    Description
  3245.  00h  8 BYTEs    signature "TTCONFIG"
  3246.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3247.         or the following byte
  3248.  0Ah    BYTE    ???
  3249.  0Bh    ???    configuration data
  3250. --------a-103801-----------------------------
  3251. INT 10 - Tinytalk Personal v1.10 - ???
  3252.     AX = 3801h
  3253.     DL = ???
  3254. Return: ???
  3255. SeeAlso: AX=3800h,AX=3802h
  3256. --------a-103802-----------------------------
  3257. INT 10 - Tinytalk Personal v1.10 - ???
  3258.     AX = 3802h
  3259.     DL = ???
  3260. Return: ???
  3261. SeeAlso: AX=3800h,AX=3801h
  3262. --------a-103803-----------------------------
  3263. INT 10 - Tinytalk Personal v1.10 - GET ???
  3264.     AX = 3803h
  3265. Return: AL = ???
  3266. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3267. --------a-103804-----------------------------
  3268. INT 10 - Tinytalk Personal v1.10 - GET ???
  3269.     AX = 3804h
  3270. Return: AX = ???
  3271. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3272. --------a-103805-----------------------------
  3273. INT 10 - Tinytalk Personal v1.10 - GET ???
  3274.     AX = 3805h
  3275. Return: AL = ???
  3276. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3277. --------a-103806-----------------------------
  3278. INT 10 - Tinytalk Personal v1.10 - ???
  3279.     AX = 3806h
  3280.     ES:DX -> ASCIZ ???
  3281. Return: ???
  3282. SeeAlso: AX=3800h
  3283. --------a-1039-------------------------------
  3284. INT 10 - Tinytalk Personal v1.10 - ???
  3285.     AH = 39h
  3286. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3287. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3288.       variants of Tinytalk
  3289. --------V-1040-------------------------------
  3290. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3291.     AH = 40h
  3292. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3293. SeeAlso: AH=00h,AH=41h
  3294. Index:    video modes
  3295. --------V-1041-------------------------------
  3296. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3297.     AH = 41h
  3298. Desc:    switch the Hercules Graphics Card into text mode
  3299. SeeAlso: AH=00h,AH=40h
  3300. Index:    video modes
  3301. --------V-1042-------------------------------
  3302. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3303.     AH = 42h
  3304. SeeAlso: AH=45h
  3305. --------V-1043-------------------------------
  3306. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3307.     AH = 43h
  3308.     AL = page number (0,1)
  3309. Desc:    specify which of the two pages of video memory is to be used for
  3310.       output
  3311. SeeAlso: AH=05h,AH=44h,AH=45h
  3312. --------V-1044-------------------------------
  3313. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3314.     AH = 44h
  3315.     AL = drawing function
  3316.         00h clear pixels
  3317.         01h set pixels
  3318.         02h invert pixels
  3319. Desc:    specify how graphics output will change the display
  3320. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3321. --------V-1045-------------------------------
  3322. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3323.     AH = 45h
  3324.     AL = page number (0,1)
  3325. Desc:    specify which of the two pages of video memory is visible on screen
  3326. SeeAlso: AH=05h,AH=42h,AH=43h
  3327. --------V-1046-------------------------------
  3328. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3329.     AH = 46h
  3330.     DI = x (0-720)
  3331.     BP = y (0-347)
  3332. Note:    function 44h determines operation and function 43h which page to use
  3333. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3334. --------V-1047-------------------------------
  3335. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3336.     AH = 47h
  3337.     DI = x (0-720)
  3338.     BP = y (0-347)
  3339. Return: AL = 00h pixel clear
  3340.     AL = 01h pixel set
  3341. Note:    function 43h specifies which page is used
  3342. SeeAlso: AH=0Dh,AH=46h
  3343. --------V-1048-------------------------------
  3344. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3345.     AH = 48h
  3346.     DI = x (0-720)
  3347.     BP = y (0-347)
  3348. Desc:    specify the location from which to start the next graphics output
  3349. SeeAlso: AH=49h
  3350. --------V-1049-------------------------------
  3351. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3352.     AH = 49h
  3353.     DI = x (0-720)
  3354.     BP = y (0-347)
  3355. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3356.       use
  3357. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3358. --------V-104A-------------------------------
  3359. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3360.     AH = 4Ah
  3361.     DI = x coordinate of lower left corner
  3362.     BP = y coordinate of lower left corner
  3363.     BX = height in pixels
  3364.     CX = width in pixels
  3365. Desc:    draw a solid rectangle of the specified size at the given location
  3366. SeeAlso: AH=4Eh
  3367. --------V-104B-------------------------------
  3368. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3369.     AH = 4Bh
  3370.     AL = character to display
  3371.     DI = x (0-720)
  3372.     BP = y (0-347)
  3373. Note:    unlike the other BIOS character functions character position is
  3374.       specified in pixels rather than rows and columns
  3375. SeeAlso: AH=09h,AH=0Ah
  3376. ----------104B-------------------------------
  3377. INT 10 - FRIEZE - API
  3378.     AH = 4Bh
  3379.     CL = function
  3380.         00h (v6.x-) print window
  3381.         AL = mode
  3382.             00h character
  3383.             01h normal
  3384.             02h sideways
  3385.         01h load window
  3386.         ES:BX -> ASCIZ filename from which to read
  3387.         02h save window
  3388.         ES:BX -> ASCIZ filename to which to write
  3389.         03h set print width
  3390.         AL = width in 1/4 inches
  3391.         04h set print height
  3392.         AL = height in 1/4 inches
  3393.         05h reserved
  3394.         06h set left margin
  3395.         AL = printout margin in 1/4 inches
  3396.         07h set window size
  3397.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3398.         08h reserved
  3399.         09h set patterns
  3400.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3401.         0Ah get patterns
  3402.         ES:BX -> 16-BYTE buffer for color correspondences
  3403.         0Bh set mode
  3404.         AL = mode
  3405.         0Ch (v7.41) ???
  3406.         AL = ???
  3407.             00h ??? (calls original INT 05)
  3408.             else ???
  3409.         0Dh (v7.41) ???
  3410.         AL = ???
  3411.             00h ??? (calls original INT 05)
  3412.             else ???
  3413.         0Eh (v7.41) ???
  3414.         ???
  3415.         0Fh get window
  3416.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3417.         10h set print options
  3418.         ES:BX -> printer options in same format as FRIEZE cmdline
  3419.         11h initialize
  3420.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3421.         12h (v7.41) ???
  3422.         ???
  3423.         13h (v7.41) ???
  3424.         ???
  3425.         14h get version
  3426.         Return: AH = major version (00h if FRIEZE version before 7)
  3427.             AL = minor version
  3428.         15h set parameters
  3429.         ES:BX -> parameter table (see below)
  3430.         16h get parameters
  3431.         ES:BX -> buffer for parameter table (see below)
  3432.         17h get printer resolution
  3433.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3434.         18h (v8.0 only) reserved
  3435.         50h (v7.41) get ???
  3436.         Return: AX = ???
  3437.         51h (v7.41) get ???
  3438.         Return: ES = ??? (seen 2348h)
  3439.             AX = ??? (seen 8432h)
  3440. Return: AX = status (see below)
  3441. SeeAlso: AH=0Fh/SI=F123h
  3442.  
  3443. Values for status:
  3444.  00h    successful
  3445.  01h    user aborted printout with ESC
  3446.  02h    reserved
  3447.  03h    file read error
  3448.  04h    file write error or printer error
  3449.  05h    file not found
  3450.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3451.  07h    file close error
  3452.  08h    disk error
  3453.  09h    (v7.0+) printer error
  3454.  0Ah    invalid function
  3455.  0Bh    (v7.0+) can't create file
  3456.  0Ch    (v7.0+) wrong video mode
  3457.  
  3458. Format of parameter table:
  3459. Offset    Size    Description
  3460.  00h    WORD    top margin (1/100 inch)
  3461.  02h    WORD    left margin (1/100 inch)
  3462.  04h    WORD    horizontal size (1/100 inch)
  3463.  06h    WORD    vertical size (1/100 inch)
  3464.  08h    WORD    quality/draft mode
  3465.         00h draft mode
  3466.         01h quality mode
  3467.         02h use horizontal/vertical resolution for output resolution
  3468.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3469.  0Ch    WORD    printer vertical resolution (dots per inch)
  3470.  0Eh    WORD    reserved (FFFFh)
  3471. Note:    any field which should remain unchanged may be filled with FFFFh
  3472. --------V-104C-------------------------------
  3473. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3474.     AH = 4Ch
  3475.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3476.     DI = x coordinate of center
  3477.     BP = y coordinate of center
  3478.     BX = radius
  3479. SeeAlso: AH=49h,AH=4Dh
  3480. --------V-104D-------------------------------
  3481. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3482.     AH = 4Dh
  3483.     DI = x of center
  3484.     BP = y of center
  3485.     BX = radius
  3486. SeeAlso: AH=49h,AH=4Ch
  3487. --------V-104E-------------------------------
  3488. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3489.     AH = 4Eh
  3490.     DI = x coordinate of an interior point
  3491.     BP = y coordinate of an interior point
  3492. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3493.       opposite color with the border color
  3494. Note:    the first fill makes the figure solid, the second erases it
  3495. SeeAlso: AH=4Ah
  3496. --------V-104E00-----------------------------
  3497. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  3498.     AX = 4E00h
  3499.     ES:DI -> 256-byte buffer for XGA information (see below)
  3500. Return: AL = 4Eh if function supported
  3501.         AH = status
  3502.         00h successful
  3503.         else error code
  3504. Desc:    determine whether VESA XGA extensions are present and the capabilities
  3505.       supported by the display adapter
  3506. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  3507. Index:    installation check;VESA XGA
  3508.  
  3509. Format of XGA information buffer:
  3510. Offset    Size    Description
  3511.  00h  4 BYTEs    signature ("VESA")
  3512.  04h    WORD    VESA version number
  3513.  06h    DWORD    pointer to ASCIZ OEM string
  3514.  0Ah    DWORD    environment flags (see below)
  3515.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  3516.           require a handle indicating which adapter to use)
  3517.  10h 240 BYTEs    reserved
  3518.  
  3519. Bitfields for environment flags:
  3520. Bit(s)    Description
  3521.  0-1    system bus (00 = MCA, 01 = ISA, 10 = EISA)
  3522.  2    bus mastering available
  3523.  3-31    reserved
  3524. --------V-104E01----------------------------
  3525. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  3526.     AX = 4E01h
  3527.     DX = XGA handle (0 to number of XGAs-1)
  3528.     ES:DI -> 256-byte buffer for subsystem information (see below)
  3529. Return: AL = 4Eh if function supported
  3530.     AH = status
  3531.         00h     function successful
  3532.         else error code
  3533. SeeAlso: AX=4E00h,AX=4E02h
  3534.  
  3535. Format of subsystem information:
  3536. Offset    Size    Description
  3537.  00h    DWORD    pointer to null-terminated board OEM string
  3538.  04h    DWORD    capabilities (see below)
  3539.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  3540.  0Ch    DWORD    pointer to the XGA memory mapped registers
  3541.  10h    WORD    base address of XGA I/O registers (21x0h)
  3542.  12h    DWORD    pointer to start of physical video memory
  3543.         (A000h:0000h or B000h:0000h)
  3544.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  3545.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  3546.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  3547.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  3548.  26h    WORD    size of OEM aperture in 64KByte units
  3549.  28h    DWORD    pointer to list of video modes
  3550.         The list is a series of WORDs terminated by FFFFh
  3551.  2Ch    WORD    number of 64KB blocks on the board
  3552.  2Eh    DWORD    XGA manufacturer ID
  3553.         byte 0 POS data index 1
  3554.         byte 1 is index 2
  3555.         byte 2 is 21xAh index 75h
  3556.  32h 206 BYTEs    reserved
  3557.  
  3558. Bitfields for capabilities:
  3559. Bit(s)    Description
  3560.  0-1    board bus architecture: 0=MCA, 1=ISA, 3=EISA
  3561.  2-3    reserved
  3562.  4-6    DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  3563.  7    DMA Channel Status (ISA only). enabled if set
  3564.  8-31    reserved
  3565. --------V-104E02-----------------------------------
  3566. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  3567.     AX = 4E02h
  3568.     CX = Video mode
  3569.     DX = XGA handle
  3570.     ES:DI -> 256 byte buffer
  3571. Return: AL = 4Eh if function supported
  3572.     AH = status
  3573.         00h     function successful
  3574.         else error code
  3575. SeeAlso: AX=4E00h,AX=4E01h
  3576.  
  3577. Format of mode information:
  3578. Offset    Size    Description
  3579.  00h    WORD    attributes of the mode (see below)
  3580.  02h    WORD    bytes per logical scanline
  3581.  04h    WORD    horizontal resolution in pixels
  3582.  06h    WORD    vertical resolution in scanlines
  3583.  08h    BYTE    character Width in pixels
  3584.  09h    BYTE    character Height in pixels
  3585.  0Ah    BYTE    number of planes
  3586.  0Bh    BYTE    bits per pixels
  3587.  0Ch    BYTE    memory model (see below)
  3588.  0Dh    BYTE    number of Image Pages
  3589.  0Eh    BYTE    number of Red bits
  3590.  0Fh    BYTE    bit position of Red bit field
  3591.  10h    BYTE    number of Green bits
  3592.  11h    BYTE    bit position of Green bit field
  3593.  12h    BYTE    number of Blue bits
  3594.  13h    BYTE    bit position of Blue bit field
  3595.  14h    BYTE    number of Reserved bits
  3596.  15h    BYTE    bit position of Reserved bit field
  3597.  16h 235 BYTEs    reserved
  3598.  
  3599. Bitfields for mode attributes:
  3600. Bit(s)    Description
  3601.  0    set if mode is supported
  3602.  1    reserved
  3603.  2    output is supported by the BIOS
  3604.  3    reserved
  3605.  4    if set this is a graphics mode (VGA registers inactive, XGA active),
  3606.       if clear this is a text mode (VGA registers active, XGA inactive)
  3607.  
  3608. Values for memory model:
  3609.  00h    Text Mode
  3610.  01h    CGA graphics
  3611.  02h    Hercules graphics
  3612.  03h    4-planar graphics
  3613.  04h    Packed Pixel
  3614.  05h    Non-chain 4, 256 color
  3615.  06h    Direct Color
  3616.  07h    YUV-24
  3617. --------V-104E03-----------------------------------
  3618. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  3619.     AX = 4E03h
  3620.     BX = video mode
  3621.     CX = other command flags
  3622.          bit 0  If clear the feature connector is set to the default state
  3623.     DX = XGA handle
  3624.     ES:DI -> 256 byte buffer
  3625. Return: AL = 4Eh if function supported
  3626.     AH = status
  3627.         00h     function successful
  3628.         else error code
  3629. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  3630. --------V-104E04-----------------------------------
  3631. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  3632.     AX = 4E04h
  3633.     DX = XGA handle
  3634. Return: AL = 4Eh if function supported
  3635.     AH = status
  3636.         00h     function successful
  3637.         BX??? = current mode
  3638.         else error code
  3639. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  3640. --------V-104E05-----------------------------------
  3641. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  3642.     AX = 4E05h
  3643.     BX = Feature Connector State (see below)
  3644.     DX = XGA handle
  3645. Return: AL = 4Eh if function supported
  3646.     AH = status
  3647.         00h     function successful
  3648.         else error code
  3649. SeeAlso: AX=4E00h,AX=4E06h
  3650.  
  3651. Bitfields for Feature Connector State:
  3652. Bit(s)    Description
  3653.  0    Feature Connector is enabled
  3654.  1    Feature Connector is in Output Mode rather than Input Mode
  3655.  2-15    reserved (0)
  3656. --------V-104E06-----------------------------------
  3657. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  3658.     AX = 4E06h
  3659.     DX = XGA handle
  3660. Return: AL = 4Eh if function supported
  3661.     AH = status
  3662.         00h     function successful
  3663.         else error code
  3664.     BX = Feature Connector State (see AX=4E05h)
  3665. SeeAlso: AX=4E00h,AX=4E05h
  3666. --------V-104F00-----------------------------
  3667. INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
  3668.     AX = 4F00h
  3669.     ES:DI -> 256-byte buffer for SuperVGA information (see below)
  3670. Return: AL = 4Fh if function supported
  3671.     AH = status
  3672.         00h successful
  3673.         ES:DI buffer filled
  3674.         01h failed
  3675. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  3676.       supported by the display adapter
  3677. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h
  3678. Index:    installation check;VESA SuperVGA
  3679.  
  3680. Format of SuperVGA information:
  3681. Offset    Size    Description
  3682.  00h  4 BYTEs    signature ("VESA")
  3683.  04h    WORD    VESA version number
  3684.  06h    DWORD    pointer to OEM name
  3685.         "761295520" for ATI
  3686.  0Ah  4 BYTEs    capabilities
  3687.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  3688.         (list of words terminated with FFFFh)
  3689.  12h    WORD    total amount of video memory in 64K blocks
  3690.  14h 236 BYTEs    reserved
  3691. Notes:    the list of supported video modes is stored in the reserved portion of
  3692.       the SuperVGA information record by some implementations, and it may
  3693.       thus be necessary to either copy the mode list or use a different
  3694.       buffer for all subsequent VESA calls
  3695.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  3696.       buffer should be 262 bytes to ensure that it is not overrun
  3697. --------V-104F01-----------------------------
  3698. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  3699.     AX = 4F01h
  3700.     CX = SuperVGA video mode
  3701.     ES:DI -> 256-byte buffer for mode information (see below)
  3702. Return: AL = 4Fh function supported
  3703.     AH = status
  3704.         00h successful
  3705.         ES:DI buffer filled
  3706.         01h failed
  3707. Desc:    determine the attributes of the specified video mode
  3708. SeeAlso: AX=4F00h,AX=4F02h
  3709.  
  3710. Format of mode information:
  3711. Offset    Size    Description
  3712.  00h    WORD    mode attributes (see below)
  3713.  02h    BYTE    window attributes, window A (see below)
  3714.  03h    BYTE    window attributes, window B (see below)
  3715.  04h    WORD    window granularity in KB
  3716.  06h    WORD    window size in KB
  3717.  08h    WORD    start segment of window A
  3718.  0Ah    WORD    start segment of window B
  3719.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  3720.  10h    WORD    bytes per scan line
  3721. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  3722.  12h    WORD    width in pixels (graphics) or characters (text)
  3723.  14h    WORD    height in pixels (graphics) or characters (text)
  3724.  16h    BYTE    width of character cell in pixels
  3725.  17h    BYTE    height of character cell in pixels
  3726.  18h    BYTE    number of memory planes
  3727.  19h    BYTE    number of bits per pixel
  3728.  1Ah    BYTE    number of banks
  3729.  1Bh    BYTE    memory model type (see below)
  3730.  1Ch    BYTE    size of bank in KB
  3731.  1Dh    BYTE    number of image pages
  3732.  1Eh    BYTE    reserved (0)
  3733. ---VBE v1.2+---
  3734.  1Fh    BYTE    red mask size
  3735.  20h    BYTE    red field position
  3736.  21h    BYTE    green mask size
  3737.  22h    BYTE    green field size
  3738.  23h    BYTE    blue mask size
  3739.  24h    BYTE    blue field size
  3740.  25h    BYTE    reserved mask size
  3741.  26h    BYTE    reserved mask position
  3742.  27h    BYTE    direct color mode info
  3743.  28h 216 BYTEs    reserved (0)
  3744.  
  3745. Bitfields for window attributes:
  3746. Bit(s)    Description
  3747.  0    exists
  3748.  1    readable
  3749.  2    writable
  3750.  3-7    reserved
  3751.  
  3752. Bitfields for mode attributes:
  3753. Bit(s)    Description
  3754.  0    mode supported
  3755.  1    optional information available
  3756.  2    BIOS output supported
  3757.  3    set if color, clear if monochrome
  3758.  4    set if graphics mode, clear if text mode
  3759.  
  3760. Values for memory model type:
  3761.  00h    text
  3762.  01h    CGA graphics
  3763.  02h    HGC graphics
  3764.  03h    16-color (EGA) graphics
  3765.  04h    packed pixel graphics
  3766.  05h    "sequ 256" (non-chain 4) graphics
  3767.  06h    direct color (HiColor, 24-bit color)
  3768.  07h    YUV (luminance-chrominance, also called YIQ)
  3769.  08h-0Fh reserved for VESA
  3770.  10h-FFh OEM memory models
  3771. --------V-104F02-----------------------------
  3772. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  3773.     AX = 4F02h
  3774.     BX = mode
  3775.         bit 15 set means don't clear video memory
  3776. Return: AL = 4Fh function supported
  3777.     AH = status
  3778.         00h successful
  3779.         01h failed
  3780. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  3781.  
  3782. Values for VESA video mode:
  3783.  00h-FFh OEM video modes (see AH=00h)
  3784.  100h    640x400x256
  3785.  101h    640x480x256
  3786.  102h    800x600x16
  3787.  103h    800x600x256
  3788.  104h    1024x768x16
  3789.  105h    1024x768x256
  3790.  106h    1280x1024x16
  3791.  107h    1280x1024x256
  3792.  108h    80x60 text
  3793.  109h    132x25 text
  3794.  10Ah    132x43 text
  3795.  10Bh    132x50 text
  3796.  10Ch    132x60 text
  3797. ---VBE v1.2---
  3798.  10Dh    320x200x32K
  3799.  10Eh    320x200x64K
  3800.  10Fh    320x200x16M
  3801.  110h    640x480x32K
  3802.  111h    640x480x64K
  3803.  112h    640x480x16M
  3804.  113h    800x600x32K
  3805.  114h    800x600x64K
  3806.  115h    800x600x16M
  3807.  116h    1024x768x32K
  3808.  117h    1024x768x64K
  3809.  118h    1024x768x16M
  3810.  119h    1280x1024x32K
  3811.  11Ah    1280x1024x64K
  3812.  11Bh    1280x1024x16M
  3813. Index:    video modes
  3814.  
  3815. Values for S3 OEM video mode:
  3816.  201h    640x480x256
  3817.  202h    800x600x16
  3818.  203h    800x600x256
  3819.  204h    1024x768x16
  3820.  205h    1024x768x256
  3821.  206h    1280x960x16
  3822.  208h    1280x1024x16
  3823.  211h    640x480x64K (Diamond Stealth 24)
  3824.  212h    640x480x16M (Diamond Stealth 24)
  3825.  301h    640x480x32K
  3826. Index:    video modes
  3827. --------V-104F03-----------------------------
  3828. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  3829.     AX = 4F03h
  3830. Return: AL = 4Fh function supported
  3831.     AH = status
  3832.         00h successful
  3833.         BX = video mode (see AX=4F02h)
  3834.         01h failed
  3835. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  3836. --------V-104F04-----------------------------
  3837. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  3838.     AX = 4F04h
  3839.     DL = subfunction
  3840.         00h get state buffer size
  3841.         Return: BX = number of 64-byte blocks needed
  3842.         01h save video states
  3843.         ES:BX -> buffer
  3844.         02h restore video states
  3845.         ES:BX -> buffer
  3846.     CX = states to save/restore (see below)
  3847. Return: AL = 4Fh function supported
  3848.     AH = status
  3849.         00h successful
  3850.         01h failed
  3851.  
  3852. Bitfields for states to save/restore:
  3853. Bit(s)    Description
  3854.  0    video hardware state
  3855.  1    video BIOS data state
  3856.  2    video DAC state
  3857.  3    SuperVGA state
  3858. --------V-104F05-----------------------------
  3859. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  3860.     AX = 4F05h
  3861.     BH = subfunction
  3862.         00h select video memory window
  3863.         DX = window address in video memory (in granularity units)
  3864.         01h get video memory window
  3865.         Return: DX = window address in video memory (in gran. units)
  3866.     BL = window number
  3867.         00h window A
  3868.         01h window B
  3869. Return: AL = 4Fh function supported
  3870.     AH = status
  3871.         00h successful
  3872.         01h failed
  3873. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  3874. --------V-104F06-----------------------------
  3875. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
  3876.     AX = 4F06h
  3877.     BL = function
  3878.         00h set scan line length
  3879.         CX = desired width in pixels
  3880.         01h get scan line length
  3881. Return: AL = 4Fh if function supported
  3882.     AH = status
  3883.         00h successful
  3884.         01h failed
  3885.     BX = bytes per scan line
  3886.     CX = number of pixels per scan line
  3887.     DX = maximum number of scan lines
  3888. Notes:    if the desired width is not achievable, the next larger width will be
  3889.       set
  3890.     the scan line may be wider than the visible area of the screen
  3891.     this function is valid in text modes, provided that values are
  3892.       multiplied by the character cell width/height
  3893. SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
  3894. --------V-104F07BH00-------------------------
  3895. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  3896.     AX = 4F07h
  3897.     BH = 00h (reserved)
  3898.     BL = function
  3899.         00h set display start
  3900.         CX = leftmost displayed pixel in scan line
  3901.         DX = first displayed scan line
  3902.         01h get display start
  3903.         Return: BH = 00h
  3904.             CX = leftmost displayed pixel in scan line
  3905.             DX = first displayed scan line
  3906. Return: AL = 4Fh if function supported
  3907.     AH = status
  3908.         00h successful
  3909.         01h failed
  3910. Note:    this function is valid in text modes, provided that values are
  3911.       multiplied by the character cell width/height
  3912. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  3913. --------V-104F08-----------------------------
  3914. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  3915.     AX = 4F08h
  3916.     BL = function
  3917.         00h set DAC palette width
  3918.         BH = desired number of bits per primary color
  3919.         01h get DAC palette width
  3920. Return: AL = 4Fh if function supported
  3921.     AH = status
  3922.     BH = current number of bits per primary (06h = standard VGA)
  3923. ----------104F13-----------------------------
  3924. INT 10 - VESA Audio Interface - API
  3925.     AX = 4F13h
  3926.     ??? details not yet available
  3927. --------V-104FFF-----------------------------
  3928. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  3929.     AX = 4FFFh
  3930.     DL = new state (00h off, 01h on)
  3931. Return: AX = 0000h if successful
  3932. --------V-104FFF-----------------------------
  3933. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  3934.     AX = 4FFFh
  3935.     BX = dual display mode
  3936.         00h reset
  3937.         01h set dual display, 32KB VGA test
  3938.         02h set dual display, 64KB VGA test
  3939. Return: AX = 4F00h if successful
  3940.         BX = number of scanlines off screen for test mode
  3941. --------U-1050-------------------------------
  3942. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  3943.     AH = 50h
  3944. Return: BX = 1954h if installed
  3945.         AL = 00h if inactive, nonzero if active
  3946. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3947. SeeAlso: AH=51h
  3948. --------J-105000-----------------------------
  3949. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  3950.     AX = 5000h
  3951.     BX = country code
  3952.         0001h USA (English), 0051h Japan
  3953. Return: AL = status
  3954.         00h successful
  3955.         01h bad country code
  3956.         02h other error
  3957. SeeAlso: AX=5001h,INT 16/AX=5000h
  3958. --------J-105001-----------------------------
  3959. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  3960.     AX = 5001h
  3961. Return: AL = status
  3962.         00h successful
  3963.         BX = country code
  3964.         02h error
  3965. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  3966. --------V-105049-----------------------------
  3967. INT 10 - VIDEO - SCREENR v1.55+ - API
  3968.     AX = 5049h ('PI')
  3969.     BX = function
  3970.         0000h installation check
  3971.         0001h lock mode
  3972.         0002h unlock mode
  3973.         0003h lock palette
  3974.         0004h unlock palette
  3975. Return: AX = 0000h if installed
  3976.         BX = TSR version (BH=major,BL=minor)
  3977.         CL = mode locking status
  3978.         00h mode not locked
  3979.         01h mode locked: INT 10/AH=00h disabled
  3980.         CH = palette locking status
  3981.         00h palette not locked
  3982.         01h palette locked, the following functions are disabled:
  3983.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  3984. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  3985.       utility.
  3986. Index:    installation check;SCREENR
  3987. --------U-1051-------------------------------
  3988. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  3989.     AH = 51h
  3990.     AL = state
  3991.         00h disable
  3992.         nonzero enable
  3993. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3994. SeeAlso: AH=50h"SCROLOCK"
  3995. --------J-105100-----------------------------
  3996. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  3997.     AX = 5100h
  3998.     BH = character width in bits (10h)
  3999.     BL = character height (10h)
  4000.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  4001.     ES:BP -> character bitmap
  4002. Return: AL = status (00h successful, 01h failed)
  4003. SeeAlso: AX=5101h,INT 1F
  4004. --------J-105101-----------------------------
  4005. INT 10 - VIDEO - AX PC - READ CHARACTER
  4006.     AX = 5101h
  4007.     BH = character width in bits
  4008.     BL = character height
  4009.     DX = character code (DH = 00h if 8-bit character)
  4010.     ES:BP -> buffer for character bitmap
  4011. Return: AL = status (00h successful, 01h failed)
  4012. SeeAlso: AH=09h,AX=5100h
  4013. --------J-105200-----------------------------
  4014. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  4015.     AX = 5200h
  4016.     BX = segment of buffer
  4017. SeeAlso: AX=5201h
  4018. --------J-105201-----------------------------
  4019. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  4020.     AX = 5201h
  4021. Return: BX = segment of buffer or 0000h if failed
  4022. SeeAlso: AX=8300h,AH=FEh
  4023. ----------1053-------------------------------
  4024. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  4025.     AH = 53h
  4026.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  4027.         .PR2)
  4028. Return: ???
  4029. SeeAlso: AH=55h
  4030. ----------1055-------------------------------
  4031. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  4032.     AH = 55h
  4033. Return: FXSHOW.EXE removed from memory
  4034. SeeAlso: AH=53h
  4035. --------V-105555-----------------------------
  4036. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  4037.     AX = 5555h
  4038. Return: AX = AAAAh    if installed
  4039.     BX:CX -> ??? routine in SMS.COM resident portion
  4040.           -> data area in VCONFIG
  4041. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  4042.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  4043. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  4044. Index:    screen saver;ATI Wonder SMS.COM
  4045.  
  4046. Format of data area:
  4047. Offset    Size    Description
  4048.  00h    DWORD    original INT 09 vector
  4049.  04h    DWORD    original INT 10 vector
  4050.  08h    DWORD    original INT 1C vector
  4051.  0Ch    WORD    screen saver state, 0=off, 1=on
  4052.  0Eh    WORD    blanking interval in clock ticks
  4053. --------V-105F00-----------------------------
  4054. INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
  4055.     AX = 5F00h
  4056. Return: AL = 5Fh function supported
  4057.         BL = chip type (see below)
  4058.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  4059.         CX = miscellaneous information (see below)
  4060. SeeAlso: AX=5F01h
  4061.  
  4062. Bitfields for chip type:
  4063. Bit(s)    Description
  4064.  7-4    chip type
  4065.     0000: 82c451
  4066.     0001: 82c452
  4067.     0010: 82c455
  4068.     0011: 82c453
  4069.     0101: 82c456
  4070.     0110: 82c457
  4071.     0111: F65520
  4072.     1000: F65530
  4073.  3-0    revision number
  4074.  
  4075. Bitfields for miscellaneous information:
  4076. Bit(s)    Description
  4077.  0    DAC size (0=6-bit, 1=8-bit)
  4078.  1    system type (0=PC/AT, 1=PS/2)
  4079.  2    extended text modes supported by BIOS
  4080.  3    reserved
  4081.  4    extended graphics modes supported by BIOS
  4082.  5    reserved
  4083.  6    BIOS supports graphics cursor
  4084.  7    BIOS supports anti-aliased font
  4085.  8    BIOS supports pre-programmed emulation
  4086.  9    BIOS supports auto emulation
  4087.  10    BIOS supports variable mode set at cold boot
  4088.  11    BIOS supports variable mode set on warm boot
  4089.  12    BIOS supports emulation mode set at cold boot
  4090.  13    BIOS supports emulation mode set on warm boot
  4091.  14-15    reserved
  4092. --------V-105F00-----------------------------
  4093. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  4094.     AX = 5F00h
  4095. Return: AH = 00h, if successful
  4096.     AL = chip version (the same value that VTEST.EXE reads)
  4097.         00h RTG3103???
  4098.         01h RTG31030/RTG3105
  4099.         02h RTG3106???
  4100.         3Fh non-Realtek chip
  4101. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  4102. SeeAlso: AX=5F01h"RTVGA"
  4103. --------V-105F01-----------------------------
  4104. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  4105.     AX = 5F01h
  4106.     BL = emulation type (see below)
  4107. Return: AL = 5Fh if function supported
  4108.         AH = status
  4109.         00h unsuccessful
  4110.         01h successful
  4111. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  4112.  
  4113. Values for emulation type:
  4114.  00h,01h reserved
  4115.  02h    CGA
  4116.  03h    MDA
  4117.  04h    Hercules
  4118.  05h    EGA
  4119.  06h    VGA
  4120. --------V-105F01-----------------------------
  4121. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  4122.     AX = 5F01h
  4123.     ES:DI -> zero-filled buffer for BIOS ID string
  4124. Return: AH = 00h if successful
  4125.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  4126. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  4127. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  4128. --------V-105F02-----------------------------
  4129. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  4130.     AX = 5F02h
  4131.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  4132. Return: AL = 5Fh if function supported
  4133.         AH = status
  4134.         00h unsuccessful
  4135.         01h successful
  4136. SeeAlso: AX=5F01h,AX=5F03h
  4137. --------V-105F02-----------------------------
  4138. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  4139.     AX = 5F02h
  4140. Return: AH = 00h, if successful
  4141.     AL = on-board memory size
  4142.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  4143. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  4144. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  4145. --------V-105F03-----------------------------
  4146. INT 10 - VIDEO - Realtek RTVGA - SET ???
  4147.     AX = 5F03h
  4148.     BL = 0-3 (???)
  4149. Return: AH = 00h if successful
  4150. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  4151. SeeAlso: AX=5F02h"RTVGA"
  4152. --------V-105F03-----------------------------
  4153. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  4154.     AX = 5F03h
  4155.     BL = configuration
  4156.         00h power-up display mode
  4157.         CL = display mode
  4158.         CH = mode
  4159.             bits 1-0 scanlines
  4160.             00: 200
  4161.             01: 350
  4162.             10: 400
  4163.             bit 7 persistence (0 reset on next boot, 1 until changed)
  4164.         01h power-up emulation mode
  4165.         CL = emulation mode (see AX=5F01h"Chips")
  4166.         CH = permanence (00h reset after next boot, 01h until changed)
  4167. Return: AL = 5Fh if function supported
  4168.         AH = status
  4169.         00h unsuccessful
  4170.         01h successful
  4171. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  4172. --------V-105F03BL01-------------------------
  4173. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  4174.     AX = 5F03h
  4175.     BL = 01h
  4176.     CL = emulation mode
  4177.     CH = mode
  4178.         bit 7 persistence (0 reset on next boot, 1 until changed)
  4179. Return: AL = 5Fh if function supported
  4180.         AH = status
  4181.         00h unsuccessful
  4182.         01h successful
  4183. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  4184. --------V-105F-------------------------------
  4185. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  4186.     AH = 5Fh
  4187.     AL = subfunction
  4188.         90h determine size of save buffer
  4189.         91h save state
  4190.         92h restore state
  4191.     CX = state mask (see below)
  4192.     ES:BX -> save buffer (subfunctions 91h,92h only)
  4193. Return: AL = 5Fh if function supported
  4194.         ---subfunction 90h---
  4195.         BX = number of 64-byte blocks required
  4196.         ---subfunction 92h---
  4197.         buffer at ES:BX filled
  4198. SeeAlso: AH=1Ch,AX=5F03h
  4199.  
  4200. Bitfields for state mask:
  4201. Bit(s)    Description
  4202.  0    video hardware
  4203.  1    BIOS data state
  4204.  2    DAC state
  4205.  15    type (0 all state info, 1 SuperVGA state only)
  4206. --------V-1060------------------------------------
  4207. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  4208.     AH = 60h
  4209.     AL = new font
  4210.         bit 7    output characters in reverse video
  4211.         bits 0-6 font number (see AH=77h)
  4212. Return: BH = cell width            
  4213.     BL = cell height
  4214. Desc:    select the font to use for output in mode 6; this can be used to mix
  4215.       fonts on the screen
  4216. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4217.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4218. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  4219. --------V-1061------------------------------------
  4220. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  4221.     AH = 61h
  4222.     CX = column
  4223.     DX = row
  4224. Note:    this function is only valid in graphics modes
  4225. SeeAlso: AH=62h
  4226. --------V-1062------------------------------------
  4227. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  4228.     AH = 62h
  4229. Return: CX = column
  4230.     DX = row
  4231. Note:    this function is only valid in graphics modes
  4232. SeeAlso: AH=61h
  4233. --------V-1063------------------------------------
  4234. INT 10 - HUNTER 16 - SET CONTRAST
  4235.     AH = 63h
  4236.     AL = contrast (0..127)
  4237. Desc:    set the LCD screen contrast to improve visibility
  4238. SeeAlso: AH=64h,AH=75h
  4239. --------V-1064------------------------------------
  4240. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  4241.     AH = 64h
  4242.     AL = level (0..15)
  4243. Desc:    set the LCD backlight level to improve visibility in bad lighting
  4244. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  4245. --------V-106500----------------------------------
  4246. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  4247.     AX = 6500h
  4248. Return: BX = timeout in seconds (0-300)
  4249. Desc:    returns the time after which the backlight will turn off
  4250. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  4251. --------V-106501----------------------------------
  4252. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  4253.     AX = 6501h
  4254.     BX = timeout in seconds (0-300)
  4255. Desc:    set the idle time after which the backlight will turn off
  4256. SeeAlso: AH=64h,AX=6500h
  4257. --------V-1066------------------------------------
  4258. INT 10 - HUNTER 16 - SPLIT DISPLAY
  4259.     AH = 66h
  4260.     AL = control bits (see below)
  4261.     BH = top row of lower section of LCD (0..7)
  4262.     BL = top row of lower section of the virtual screen (0..24)
  4263. Desc:    split the LCD screen horizontally into two parts; each part may be 
  4264.       individually scrollable or fixed.
  4265. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  4266.       a 640x200 virtual screen
  4267.  
  4268. Bitfields for control bits:
  4269. Bit(s)    Description
  4270.  0-1    01: no split, 10: allow split
  4271.  2    allow scrolling the upper part
  4272.  3    allow scrolling the lower part 
  4273. --------V-106A00BX0000-----------------------
  4274. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  4275.     AX = 6A00h
  4276.     BX = 0000h
  4277.     CX = 0000h
  4278.     DX = buffer length (may be 0)
  4279.     ES:DI -> buffer
  4280. Return: BX = number of bytes stored in buffer
  4281.     CX = bytes required for all descriptions (0 if no DGIS)
  4282. Note:    buffer contains descriptions and addresses of DGIS-compatible
  4283.       display(s) and printer(s)
  4284. SeeAlso: AX=6A02h
  4285. --------V-106A01CX0000-----------------------
  4286. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  4287.     AX = 6A01h
  4288.     CX = 0000h
  4289.     ES:DI = address of device to send INT 10 output to
  4290. Return: CX = 0000h  output could not be redirected
  4291.          else INT 10h output now routed to requested display
  4292. SeeAlso: AX=6A02h
  4293. --------V-106A02-----------------------------
  4294. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  4295.     AX = 6A02h
  4296.     ES:DI = 0000h:0000h
  4297. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  4298.         else address of the current DGIS INT 10 display
  4299. SeeAlso: AX=6A00h,AX=6A01h
  4300. --------V-106E00-----------------------------
  4301. INT 10 - Paradise VGA internal - GET ???
  4302.     AX = 6E00h
  4303. Return: BX = 5744h ('WD') if supported
  4304.         DH:AH:AL = last three ASCII digits of ROM serial number
  4305.         CL = ???
  4306.         CH = ???
  4307. SeeAlso: AX=6E04h,AX=6E05h
  4308. --------V-106E04-----------------------------
  4309. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  4310.     AX = 6E04h
  4311. Return: BX = screen width (columns)
  4312.     CX = screen height (lines)
  4313.     AH = ??? (05h or FFh)
  4314.     AL = ??? (04h or video mode)
  4315. SeeAlso: AX=6E00h,AX=6E05h
  4316. --------V-106E05-----------------------------
  4317. INT 10 - Paradise VGA internal - SET MODE
  4318.     AX = 6E05h
  4319.     BL = mode
  4320. Note:    like AH=00h, AL=BL.
  4321. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  4322. --------V-106F00BX0000-----------------------
  4323. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
  4324.     AX = 6F00h
  4325.     BX = 0000h
  4326. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  4327.     BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  4328. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  4329. --------V-106F01-----------------------------
  4330. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
  4331.     AX = 6F01h
  4332. Return: AL = monitor type code (HP,VEGA VGA only) (see below)
  4333.     AH = status register information (see below)
  4334.     CL = current value of Extended Control register (HP Ext BIOS, and only
  4335.         if AL=41h)
  4336. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  4337.  
  4338. Values for monitor type code (HP Extended BIOS):
  4339.  00h    non-HP card with ROM and possibly its own INT 10h driver
  4340.  41h    MultiMode video display adapter
  4341.  42h-44h reserved
  4342.  45h    industry standard monochrome display adapter
  4343.  46h    industry standard color display adapter
  4344.  51h    reserved
  4345.  
  4346. Bitfields for status register information:
  4347. Bit(s)    Description
  4348.  0    display enable
  4349.     0 = display enabled
  4350.     1 = vertical or horizontal retrace in progress
  4351.  1    light pen flip flop set
  4352.  2    light pen switch activated
  4353.  3    vertical sync
  4354.  4    monitor resolution
  4355.     0 = high resolution (>200 lines)
  4356.     1 = low resolution (<=200 lines)
  4357.  5    display type (0 = color, 1 = monochrome)
  4358.  6,7    diagnostic bits
  4359. --------V-106F02-----------------------------
  4360. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - SET MONITOR INFO
  4361.     AX = 6F02h
  4362.     BL = new value for extended control register (see below)
  4363. Return: nothing
  4364. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  4365.       is installed
  4366.     the Extended Control register is at I/O address 3DDh
  4367. SeeAlso: AX=6F01h,AX=6F03h
  4368.  
  4369. Bitfields for extended control register:
  4370. Bit(s)    Description
  4371.  0    screen resolution (0 = 200 lines, 1 = 400 lines)
  4372.  1    underline enable (if set, 'blue' of fg color = underl)
  4373.  2    font (0 = Standard-8, 1 = HP-Roman-8)
  4374.  3    memory disabled for CPU access
  4375.  4    allow access to full 32K memory instead of wrapping at 16K
  4376.  5    select second 16K page instead of first
  4377.  6,7    unused
  4378. --------V-106F03-----------------------------
  4379. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
  4380.     AX = 6F03h
  4381.     BH = exclude mask (set bits are not modified)
  4382.     BL = new values for bits indicated by BH (see AX=6F02h)
  4383. Return: nothing
  4384. Note:    this function is only valid when an HP MultiMode Video Display Adapter
  4385.       is installed
  4386. SeeAlso: AX=6F01h,AX=6F02h
  4387. --------V-106F04-----------------------------
  4388. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  4389.     AX = 6F04h
  4390. Return: AL = current video mode (see AX=6F05h)
  4391.     BX = horizontal columns (text) or pixels (graphics)
  4392.     CX = vertical columns (text) or pixels (graphics)
  4393. SeeAlso: AX=6F05h
  4394. --------V-106F05-----------------------------
  4395. INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE
  4396.     AX = 6F05h
  4397.     BL = mode (see below)
  4398. Notes:    also supported by the HP Vectra Extended BIOS
  4399.     on the HP Vectra, this function rather than AH=00h must be used to
  4400.       return to an IBM-standard mode after setting an HP-specified mode
  4401.       from 08h to 0Fh.
  4402. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4403.  
  4404. Values for video mode:
  4405.      text/ text pixel    pixel    colors disply scrn  system
  4406.      grph resol     box  resolution       pages  addr
  4407.  00h-13h = standard IBM modes (see AH=00h)
  4408.  08h = T  80x27      .      .    mono      .    .  HP MultiMode Video
  4409.  09h = T  80x27      .      .      .      .    .  HP MultiMode Video
  4410.  0Ah = T  40x27      .      .    mono      .    .  HP MultiMode Video
  4411.  0Bh = T  40x27      .      .      .      .    .  HP MultiMode Video
  4412.  0Ch = reserved                       HP MultiMode Video
  4413.  0Dh = G    .      .    640x400      .      .    .  HP MultiMode Video
  4414.  0Eh = G    .      .    320x400      .      .    .  HP MultiMode Video
  4415.  0Fh = G    .      .    320x400      .      .    .  HP MultiMode Video
  4416.  40h = T  80x43     8x8      .      .      .    .  Video7/VEGA VGA
  4417.  41h = T 132x25     8x14      .      .      .    .  Video7/VEGA VGA
  4418.  42h = T 132x43     8x8      .      .      .    .  Video7/VEGA VGA
  4419.  43h = T  80x60     8x8      .      .      .    .  Video7/VEGA VGA
  4420.  44h = T 100x60     8x8      .      .      .    .  Video7/VEGA VGA
  4421.  45h = T 132x28     8x8      .      .      .    .  Video7/VEGA VGA
  4422.  60h = G    .      .    752x410     16      .    .  Video7 VGA, VEGA VGA
  4423.  61h = G    .      .    720x540     16      .    .  Video7 VGA, VEGA VGA
  4424.      = G    .      .    720x540     16      .    .  Northgate, Headland 1024i
  4425.  62h = G    .      .    800x600     16      .    .  Video7 VGA, VEGA Ext EGA
  4426.      = G    .      .    800x600     16      .    .  Headland 1024i
  4427.  63h = G    .      .   1024x768      2      .    .  Video7 VGA
  4428.  64h = G    .      .   1024x768      4      .    .  Video7 VGA
  4429.  65h = G    .      .   1024x768     16      .    .  Video7 VGA, VEGA Ext EGA
  4430.      = G    .      .   1024x768     16      .    .  Headland 1024i
  4431.  66h = G    .      .    640x400    256      .    .  Video7 VGA, VEGA Ext VGA
  4432.      = G    .      .    640x400    256      .    .  Northgate, Headland 1024i
  4433.  67h = G    .      .    640x480    256      .    .  Video7 VGA, VEGA Ext VGA
  4434.      = G    .      .    640x480    256      .    .  Headland 1024i
  4435.  68h = G    .      .    720x540    256      .    .  Video7 VGA, VEGA Ext VGA
  4436.      = G    .      .    720x540    256      .    .  Headland 1024i
  4437.  69h = G    .      .    800x600    256      .    .  Video7 VGA, VEGA Ext VGA
  4438.      = G    .      .    800x600    256      .    .  Headland 1024i
  4439.  70h = G    .      .    752x410     16gray      .    .  Video7 VGA, VEGA VGA
  4440.  71h = G    .      .    720x540     16gray      .    .  Video7 VGA, VEGA VGA
  4441.  72h = G    .      .    800x600     16gray      .    .  Video7 VGA
  4442.  73h = G    .      .   1024x768      2gray      .    .  Video7 VGA
  4443.  74h = G    .      .   1024x768      4gray      .    .  Video7 VGA
  4444.  75h = G    .      .   1024x768     16gray      .    .  Video7 VGA
  4445.  76h = G    .      .    640x400    256gray      .    .  Video7 VGA
  4446.  77h = G    .      .    640x480    256gray      .    .  Video7 VGA
  4447.  78h = G    .      .    720x540    256gray      .    .  Video7 VGA
  4448.  79h = G    .      .    800x600    256gray      .    .  (future)
  4449. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4450. Index:    video modes
  4451. --------V-106F06-----------------------------
  4452. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  4453.     AX = 6F06h
  4454.     BL = Autoswitch mode select
  4455.          00h select EGA/VGA-only modes
  4456.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  4457.          02h select 'bootup' CGA/MGA modes
  4458.     BH = enable/disable (00h enable, 01h = disable selection)
  4459. --------V-106F07-----------------------------
  4460. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  4461.     AX = 6F07h
  4462. Return: AL = 6Fh
  4463.     AH = memory configuration
  4464.         bits 0-6 = number of 256K blocks of video memory
  4465.         bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  4466.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  4467.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  4468.     CX = 0000h
  4469. SeeAlso: AH=12h/BL=10h
  4470. --------V-1070-------------------------------
  4471. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  4472.     AH = 70h
  4473. Return: AX:BX -> WORD containing green plane's offset
  4474.     AX:CX -> WORD containing green plane's segment
  4475.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  4476.             4000) planes
  4477. SeeAlso: AH=71h
  4478. --------V-1070------------------------------------
  4479. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  4480.     AH = 70h
  4481.     DS:BX -> control block (see below)
  4482. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  4483. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4484.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4485. SeeAlso: AH=71h"HUNTER"
  4486.  
  4487. Format of control block:
  4488. Offset    Size    Description
  4489.  00h    WORD    center X co-ordinate
  4490.  02h    BYTE    center Y co-ordinate
  4491.  03h    WORD    radius in pixels
  4492.  05h    BYTE    color (00h white, 01h black, FFh invert)
  4493.  06h    BYTE    aspect ratio x:x (1-127)
  4494.  07h    BYTE    aspect ratio y:y (1-127)
  4495. --------V-107000BX0000-----------------------
  4496. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  4497.     AX = 7000h
  4498.     BX = 0000h
  4499. Return: AL = 70h if Trident-based Everex card
  4500.     CL = monitor type (see below)
  4501.     CH = feature bits (see below)
  4502.     DX = video board info
  4503.         bits 4-15: board ID model
  4504.         bits 0-3:  board ID revision
  4505.     DI = BCD BIOS version number
  4506. SeeAlso: AX=5F01h,AH=FF"Oak"
  4507.  
  4508. Values for monitor type:
  4509.  00h    mono
  4510.  01h    CGA
  4511.  02h    EGA
  4512.  03h    digital multifrequency
  4513.  04h    IBM PS/2
  4514.  05h    IBM 8514
  4515.  06h    SuperVGA
  4516.  07h    analog multifrequency
  4517.  08h    super multifrequency
  4518.  
  4519. Values for board model for Trident-based Everex cards:
  4520.  0236h    Ultragraphics II
  4521.  0620h    Vision VGA
  4522.  0673h    EVGA
  4523.  0678h    Viewpoint
  4524.  
  4525. Bitfields for feature bits:
  4526. Bit(s)    Description
  4527.  7-6    memory size
  4528.     00 = 256K
  4529.     01 = 512K
  4530.     10 = 1024K
  4531.     11 = 2048K
  4532.  5    special oscillator present
  4533.  4    VGA protect enabled
  4534.  0    6845 emulation
  4535. --------V-107000BX0004-----------------------
  4536. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  4537.     AX = 7000h
  4538.     BX = 0004h
  4539. Return: ES:DI -> FAR paging function (call with DL = page to set)
  4540. Note:    the word preceding ES:DI is the length of the function in bytes, and
  4541.       the last byte of the function is a FAR return instruction.
  4542. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  4543. --------V-107000BX0005-----------------------
  4544. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  4545.     AX = 7000h
  4546.     BX = 0005h
  4547.     CL = maximum number of modes to get info for
  4548.     CH = mode type to get info for (see below)
  4549.     DL = monitor type to get info for
  4550.     ES:DI -> buffer for mode info (see below)
  4551. Return: CL = total number of modes fitting criteria
  4552.     CH = size of each info record
  4553. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  4554.  
  4555. Values for mode type:
  4556.  00h    all modes
  4557.  01h    monochrome text modes
  4558.  02h    color text modes
  4559.  03h    four-color CGA graphics modes
  4560.  04h    two-color CGA graphics modes
  4561.  05h    16-color graphics modes
  4562.  06h    256-color graphics modes
  4563.  
  4564. Format of mode information record:
  4565. Offset    Size    Description
  4566.  00h    BYTE    mode number (bit 7 set if extended mode)
  4567.  01h    BYTE    mode type (see above)
  4568.  02h    BYTE    info bits (see below)
  4569.  03h    BYTE    font height
  4570.  04h    BYTE    text columns on screen
  4571.  05h    BYTE    text rows on screen
  4572.  06h    WORD    number of scan lines
  4573.  08h    BYTE    color information
  4574.         bits 7-4 reserved
  4575.              3-0 bits per pixel
  4576.  
  4577. Bitfields for info bits:
  4578. Bit(s)    Description
  4579.  7,6    reserved
  4580.  5    monochrome mode
  4581.  4    interlaced display
  4582.  3    requires special oscillator
  4583.  2,1    memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  4584.  0    reserved
  4585. --------V-1071-------------------------------
  4586. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  4587.     AH = 71h
  4588. Return: AX:BX -> WORD containing segment address of INCRAM
  4589.     AX:CX -> WORD containing offset of INCRAM
  4590. SeeAlso: AH=70h"TANDY"
  4591. --------V-1071------------------------------------
  4592. INT 10 - HUNTER 16 - DRAW LINE/BOX
  4593.     AH = 71h
  4594.     DS:BX -> control block (see below)
  4595. Desc:    Draws a line or box. Only valid in graphics modes.
  4596. SeeAlso: AH=70h"HUNTER"
  4597.  
  4598. Format of control block:
  4599. Offset    Size    Description
  4600.  00h    WORD    left edge X co-ordinate
  4601.  02h    BYTE    lower edge Y co-ordinate
  4602.  03h    WORD    right edge X co-ordinate
  4603.  05h    BYTE    upper edge Y co-ordinate
  4604.  06h    BYTE    color (00h white, 01h black, FFh invert)
  4605.  07h    BYTE    type (00h line, 01h box)
  4606.  08h    BYTE    if non-zero (and type is BOX) fill with color
  4607. --------V-1072-------------------------------
  4608. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  4609.     AH = 72h
  4610.     AL = number of columns to shift scroll area, 00h to clear entire area
  4611.     BH = new attributes for blanked columns at left
  4612.     CH,CL = row, column of upper left corner of scroll area
  4613.     DH,DL = row, column of lower right corner of scroll area
  4614. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  4615. --------V-1072------------------------------------
  4616. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  4617.     AH = 72h
  4618.     AL = mechanism to use
  4619.         00h do not use inverse video
  4620.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  4621.         inverse video.
  4622.         02h use inverse video if background is non-black.
  4623.         03h use inverse video for high intensity text.
  4624.         04h use inverse video for text with background intensity greater
  4625.         than foreground intensity.
  4626.         05h use inverse video for text with background color other than
  4627.         black or high intensity foreground.
  4628. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  4629. --------V-1073-------------------------------
  4630. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  4631.     AH = 73h
  4632.     AL = number of columns to shift scroll area, 00h to clear entire area
  4633.     BH = new attributes for blanked columns at right
  4634.     CH,CL = row, column of upper left corner of scroll area
  4635.     DH,DL = row, column of lower right corner of scroll area
  4636. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  4637. --------V-1073------------------------------------
  4638. INT 10 - HUNTER 16 - SELECT TEXT FONT
  4639.     AH = 73h
  4640.     AL = new font
  4641.           00h  7x7 in a 8x8 cell
  4642.           01h  5x7 in a 6x8 cell
  4643.           06h  3x5 in a 4x6 cell
  4644. Retuen: BH = cell width
  4645.     BL = cell height
  4646. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  4647. --------V-1074------------------------------------
  4648. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  4649.     AH = 74h
  4650.     DH = row (0..24)
  4651.     DL = column (0..79)
  4652. Desc:    set the position in the virtual screen being displayed in the LCD
  4653.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  4654.       position for the window which has the cursor.
  4655. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  4656. --------V-1075------------------------------------
  4657. INT 10 - HUNTER 16 - SET ZOOM
  4658.     AH = 75h
  4659.     AL = new Zoom state (00h off, nonzero on)
  4660. SeeAlso: AH=74h,AH=76h
  4661. --------V-1076------------------------------------
  4662. INT 10 - HUNTER 16 - LOOKING KEYS
  4663.     AH = 76h
  4664.     AL = Action
  4665.          00h home the window
  4666.          01h move up one line
  4667.          02h move down one line
  4668.          03h move left one character
  4669.          04h move right one character
  4670.          05h flip window to other side of virtual screen
  4671. Desc:    moves the displayed screen around the virtual screen
  4672. SeeAlso: AH=74h,AH=75h
  4673. --------V-1077------------------------------------
  4674. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  4675.     AH = 77h
  4676. Return: AL = font number (see below)
  4677. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  4678.  
  4679. Values for graphics font number:
  4680.  00h     7x7  in a  8x8     cell 
  4681.  01h     5x7  in a  6x8     cell
  4682.  02h     7x9  in a  8x10 cell
  4683.  03h    14x9  in a 16x10 cell
  4684.  04h     7x18 in a  8x20 cell
  4685.  05h    14x18 in a 16x20 cell
  4686.  06h     3x5  in a  4x6     cell
  4687. Note:    size is X * Y
  4688. --------V-1078------------------------------------
  4689. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  4690.     AH = 78h 
  4691.     AL = new state of backlight (00h on, 01h off)
  4692. SeeAlso: AH=64h,INT 15/AH=74h
  4693. --------V-107F00-----------------------------
  4694. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  4695.     AX = 7F00h
  4696. Return: AL <> 7Fh if not supported
  4697.     AL = 7Fh if supported
  4698.         AH = status
  4699.         00h successful
  4700.             ES:DI -> info structure (see below)
  4701.         01h failed
  4702. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  4703.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  4704.       Seiko Epson Corporation intended to provided a standardized interface
  4705.       to SuperVGA functionality not addressed by the VESA standard
  4706. SeeAlso: AX=4F00h
  4707.  
  4708. Format of info structure:
  4709. Offset    Size    Description
  4710.  00h    DWORD    pointer to VESA function dispatch table
  4711.  04h    DWORD    pointer to SOLLEX function dispatch table
  4712.  08h    DWORD    pointer to VESA SuperVGA info (see AX=4F00h)
  4713.  0Ch    DWORD    pointer to mode info structure table, consisting of
  4714.         alternating ResInfo (see below) and VESA mode information
  4715.         (see AX=4F01h) blocks, terminated with an FFFFh word
  4716.  10h    DWORD    pointer to font info structure table (see below)
  4717.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  4718.  16h    DWORD    pointer to ASCIZ ID string
  4719.  1Ah    DWORD    pointer to timeout reset table
  4720.         array of bytes, each a multiple of the minimum time increment
  4721.  1Eh    WORD    minimum time increment in timer ticks
  4722.  20h    BYTE    inverse options supported
  4723.         bit 0: inverse supported
  4724.         bits 1-7: reserved
  4725.  21h    BYTE    normal color value
  4726.  22h    BYTE    inverse color value
  4727.  23h    WORD    port to be accessed for normal/inverse settings
  4728.  25h    WORD    type of interface chip (currently undefined)
  4729.  27h    WORD    program operational mode
  4730.         bits 1-0: 00 no preference
  4731.               01 terse (minimum detail in program messages)
  4732.               10 verbose
  4733.               11 use menus if supported, verbose mode otherwise
  4734.         bits 7-2: reserved
  4735.  29h    WORD    SOLLEX specification version
  4736.  2Bh    WORD    version of VESA/SOLLEX implementation
  4737.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  4738.  2Eh    DWORD    offset to unused section of the extensions ROM
  4739.  31h 16 BYTEs    reserved
  4740. Note:    all DWORD pointers initially require segment fixups; if the segment
  4741.       is 0000h, it should be changed to the returned ES, otherwise it
  4742.       may be assumed to be correct
  4743.  
  4744. Format of ResInfo:
  4745. Offset    Size    Description
  4746.  00h    WORD    16-bit mode number
  4747.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  4748.  04h    WORD    display info (see AX=7F01h/BL=01h)
  4749.  06h    DWORD    pointer to video parameter table
  4750.  0Ah    BYTE    replacement entry in master Video Parameter
  4751.  0Bh    BYTE    mode requested for mode set by BIOS
  4752.  0Ch    DWORD    pointer to LoadReg table
  4753.  10h    BYTE    index into table of clock values (see below)
  4754.  
  4755. Format of font info table [array] entry:
  4756. Offset    Size    Description
  4757.  00h    BYTE    required font height
  4758.  01h    BYTE    parameter to load text mode font
  4759.  02h    BYTE    parameter to load graphics mode font
  4760.  
  4761. Values for clock value index:
  4762.  00h    25 MHz
  4763.  01h    28 MHz
  4764.  02h    PCLK
  4765.  03h    31.5 MHz (VESA 640x480)
  4766.  04h    reserved
  4767.  05h    16 MHz (EGA)
  4768.  06h    PCLK
  4769.  07h    24 MHz (EGA)
  4770.  08h    25 MHz
  4771.  09h    28 MHz
  4772.  0Ah    36 MHz
  4773.  0Bh    45 MHz (for 1024x768)
  4774.  0Ch    80 MHz
  4775.  0Dh    40 MHz
  4776.  0Eh    65 MHz
  4777.  0Fh     1 MHz (for powerdown)
  4778. --------V-107F00BX4000-----------------------
  4779. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  4780.     AX = 7F00h
  4781.     BX = 4000h
  4782. Return: AX = 007Fh if supported
  4783.         DX:BX -> DAC set mode routine
  4784. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  4785. --------V-107F00BX4001-----------------------
  4786. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  4787.     AX = 7F00h
  4788.     BX = 4001h
  4789. Return: AX = 007Fh if supported
  4790.         CX = current linear address base (high word)
  4791. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  4792. --------V-107F00BX4002-----------------------
  4793. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  4794.     AX = 7F00h
  4795.     BX = 4002h
  4796.     CX = new linear address base (high word)
  4797. Return: AX = 007Fh if supported
  4798. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  4799. --------V-107F01BL00-------------------------
  4800. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  4801.     AX = 7F01h
  4802.     BL = 00h
  4803.     CX = adapter request (see below)
  4804. Return: AL = 7Fh if supported
  4805.         AH = status
  4806.         00h successful
  4807.         01h failed
  4808.     AL <> 7Fh if not supported
  4809. Note:    initializes video hardware to a particular standard
  4810. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  4811.  
  4812. Bitfields for adapter request:
  4813. Bit(s)    Description
  4814.  1-0    adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  4815.  2    reserved
  4816.  4-3    change displays (00 none, 01 analog 10 digital 11 panel)
  4817.  6-5    desired monitor sense (01 color, 10 mono, 11=8514)
  4818.  7    lock override
  4819.  8    alternate adapter mode
  4820.  15-9    reserved
  4821. --------V-107F01BL01-------------------------
  4822. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  4823.     AX = 7F01h
  4824.     BL = 01h
  4825. Return: AL <> 7Fh if not supported
  4826.     AL = 7Fh if supported
  4827.         AH = status
  4828.         00h successful
  4829.         01h failed
  4830.         BX = adapter type (see AX=7F01h/BL=00h)
  4831.         DX = display type (see below)
  4832. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  4833.  
  4834. Bitfields for display type:
  4835. Bit(s)    Description
  4836.  15-9    reserved
  4837.  8    alternate display active
  4838.  7    Enhanced Color Display monitor active
  4839.  6    multi-frequency digital monitor active
  4840.  5    PS/2-type monitor active
  4841.  4    plasma/electroluminescent panel active
  4842.  3    LCD panel active
  4843.  2    multi-frequency analog monitor active
  4844.  1-0    monitor sense (00 none, 01 color, 10 mono, 11=8514)
  4845. --------V-107F01BL02-------------------------
  4846. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  4847.     AX = 7F01h
  4848.     BL = 02h
  4849.     CX = adapter request (see AX=7F01h/BL=00h)
  4850. Return: AL <> 7Fh if not supported
  4851.     AL = 7Fh if supported
  4852.         AH = status
  4853.         00h requested setting can successfully be made
  4854.         01h requested setting not available in this configuration
  4855. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  4856. --------V-107F02BL00-------------------------
  4857. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  4858.     AX = 7F02h
  4859.     BL = 00h
  4860.     CX = display output setting (see below)
  4861. Return: AL <> 7Fh if not supported
  4862.     AL = 7Fh if supported
  4863.         AH = status
  4864.         00h successful
  4865.         01h failed
  4866. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4867.  
  4868. Bitfields for display output setting:
  4869. Bit(s)    Description
  4870.  0    CRTC control in 2,1 valid
  4871.  1    enable digital output
  4872.  2    enable analog output
  4873.  3    panel control in 5,4 valid
  4874.  4    enable LCD output
  4875.  5    enable plasma/EL output
  4876.  6    inverse control in 7 valid
  4877.  7    0=normal, 1=inverse
  4878.  15-8    reserved
  4879. --------V-107F02BL01-------------------------
  4880. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  4881.     AX = 7F02h
  4882.     BL = 01h
  4883. Return: AL <> 7Fh if not supported
  4884.     AL = 7Fh if supported
  4885.         AH = status
  4886.         00h successful
  4887.             BX = display output setting (see AX=7F02h/BL=00h)
  4888.             CX = displays attached (see below)
  4889.         01h failed
  4890. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4891.  
  4892. Bitfields for displays attached:
  4893. Bit(s)    Description
  4894.  0    PS/2 display on analog output
  4895.  1    multi-frequency monitor on analog output
  4896.  2    LCD panel attached
  4897.  3    plasma/electroluminescent panel attached
  4898.  4    multi-frequency monitor on digital output
  4899.  5    Enhanced Color Display attached to digital outpt
  4900.  6    alternate display
  4901.  15-7    reserved
  4902. --------V-107F03BL00-------------------------
  4903. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  4904.     AX = 7F03h
  4905.     BL = 00h
  4906.     CX = support type
  4907.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  4908.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  4909.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  4910. Return: AL <> 7Fh if not supported
  4911.     AL = 7Fh if supported
  4912.         AH = status
  4913.         00h successful
  4914.             CX = size of video support code
  4915.             DX = segment of physical video support (0000h if no ROM)
  4916.             ES = segment of active video support
  4917.             ES:DI -> information block (DI = 0000h if none available)
  4918.         01h failed
  4919. SeeAlso: AX=7F03h/BL=01h
  4920. --------V-107F03BL01-------------------------
  4921. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  4922.     AX = 7F03h
  4923.     BL = 01h
  4924.     CX = support request
  4925.     ES = segment of support code
  4926. Return: AL <> 7Fh if not supported
  4927.     AL = 7Fh if supported
  4928.         AH = status
  4929.         00h successful
  4930.         01h failed
  4931. Note:    initializes the indicated video support by calling ES:0003h; this
  4932.       function may be used to switch the active video support back to
  4933.       ROM after AX=7F03h/BL=02h
  4934. SeeAlso: AX=7F03h/BL=00h
  4935. --------V-107F03BL02-------------------------
  4936. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  4937.     AX = 7F03h
  4938.     BL = 02h
  4939.     CX = support request
  4940.     ES = destination segment
  4941. Return: AL <> 7Fh if not supported
  4942.     AL = 7Fh if supported
  4943.         AH = status
  4944.         00h successful
  4945.         01h failed
  4946. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  4947. --------V-107F04BL00-------------------------
  4948. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  4949.     AX = 7F04h
  4950.     BL = 00h
  4951.     CX = new power state
  4952. Return: AL <> 7Fh if not supported
  4953.     AL = 7Fh if supported
  4954.         AH = status
  4955.         00h successful
  4956.         01h failed
  4957. Note:    higher values progressively reduce the operations available on the
  4958.       video adapter while yielding increasing power savings
  4959. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  4960. --------V-107F04BL01-------------------------
  4961. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  4962.     AX = 7F04h
  4963.     BL = 01h
  4964. Return: AL <> 7Fh if not supported
  4965.     AL = 7Fh if supported
  4966.         AH = status
  4967.         00h successful
  4968.             CX = current power state
  4969.             DX = maximum state
  4970.         01h failed
  4971. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  4972. --------V-107F04BL02-------------------------
  4973. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  4974.     AX = 7F04h
  4975.     BL = 02h
  4976.     CX = timeout reset
  4977. Return: AL <> 7Fh if not supported
  4978.     AL = 7Fh if supported
  4979.         AH = status
  4980.         00h successful
  4981.         01h failed
  4982. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  4983. --------V-107F04BL03-------------------------
  4984. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  4985.     AX = 7F04h
  4986.     BL = 03h
  4987. Return: AL <> 7Fh if not supported
  4988.     AL = 7Fh if supported
  4989.         AH = status
  4990.         00h successful
  4991.             BX = time increment
  4992.             CX = current timeout reset
  4993.             DX = maximum timeout reset
  4994.             ES:DI -> timeout reset table (array of bytes)
  4995.         01h failed
  4996. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  4997. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  4998. --------V-107F05-----------------------------
  4999. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  5000.     AX = 7F05h
  5001.     ES:DI -> register value table (see below)
  5002. Return: AL <> 7Fh if not supported
  5003.     AL = 7Fh if supported
  5004.         AH = status
  5005.         00h successful
  5006.         01h failed
  5007. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  5008.  
  5009. Format of register value table:
  5010. Offset    Size    Description
  5011.  00h    WORD    base I/O register (FFFFh = end of list)
  5012.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  5013.         index value and the following register as a data byte
  5014.  2N+2    WORD    FFFFh (end of data list)
  5015.     ... (repeats until FFFFh base address)
  5016. --------V-107F06-----------------------------
  5017. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  5018.     AX = 7F06h
  5019.     BL = subfunction
  5020.         00h set multiple font state
  5021.         CX = new state (00h off, 01h on)
  5022.         01h get multiple font state
  5023.         Return: BL = current state (00h off, 01h on)
  5024. Return: AL <> 7Fh if not supported
  5025.     AL = 7Fh if supported
  5026.         AH = status
  5027.         00h successful
  5028.         01h failed
  5029. SeeAlso: AH=11h
  5030. --------V-107F07-----------------------------
  5031. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  5032.     AX = 7F07h
  5033.     BL = how much to fill
  5034.        00h regen size
  5035.        01h all video memory
  5036.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  5037. Return: AL <> 7Fh if not supported
  5038.     AL = 7Fh if supported
  5039.         AH = status
  5040.         00h successful
  5041.         01h failed
  5042. SeeAlso: AH=06h
  5043. --------A-1080-------------------------------
  5044. INT 10 - CU Writer v1.4 - GET OPTION
  5045.     AH = 80h
  5046.     AL = desired option
  5047. Return: ???
  5048. Program: CU Writer is a public-domain Thai-English word processor from
  5049.       Chulalongkorn University, Bangkok
  5050. SeeAlso: AH=81h"CU Writer"
  5051. --------Q-1080--DX4456-----------------------
  5052. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  5053.     AH = 80h
  5054.     DX = 4456h ('DV')
  5055.     ES:DI -> FAR subroutine to be called on ???
  5056. Return: DS = segment of DESQview data structure for video buffer
  5057. Note:    this function is probably meant for internal use only, due to the magic
  5058.       value required in DX
  5059.     the subroutine seems to be called when the DESQview menu is accessed;
  5060.       on entry, AL = 03h or 04h
  5061. --------A-1081-------------------------------
  5062. INT 10 - CU Writer v1.4 - SET OPTION
  5063.     AH = 81h
  5064.     ???
  5065. Return: ???
  5066. SeeAlso: AH=80h"CU Writer"
  5067. --------Q-1081--DX4456-----------------------
  5068. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  5069.     AH = 81h
  5070.     DX = 4456h ('DV')
  5071. Return: ES = segment of DESQview data structure for video buffer
  5072.         BYTE ES:[0] = current window number in DV 2.0x
  5073. Note:    this function is probably meant for internal use only, due to the magic
  5074.       value required in DX
  5075. SeeAlso: AH=82h"DESQview"
  5076. --------Q-1082--DX4456-----------------------
  5077. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  5078.     AH = 82h
  5079.     DX = 4456h ('DV')
  5080. Return: DS = segment in DESQview for data structure
  5081.          in DV 2.00,
  5082.           BYTE DS:[0] = window number
  5083.           WORD DS:[1] = segment of other data structure
  5084.           WORD DS:[3] = segment of window's object handle
  5085.     ES = segment of DESQview data structure for video buffer
  5086.     AL = current window number
  5087.     AH = ???
  5088.     BL = direct screen writes
  5089.         00h program does not do direct writes
  5090.         01h program does direct writes, so shadow buffer not usable
  5091.     BH = ???
  5092.     CL = current video mode
  5093.     CH = ???
  5094. Note:    this function is probably meant for internal use only, due to the magic
  5095.       value required in DX
  5096. SeeAlso: AH=81h"DESQview"
  5097. --------J-108200-----------------------------
  5098. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  5099.     AX = 8200h
  5100.     BL = new scroll mode or FFh to get current mode
  5101.         00h dynamic, 01h software
  5102. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  5103. SeeAlso: AH=06h,AH=07h
  5104. --------J-108300-----------------------------
  5105. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  5106.     AX = 8300h
  5107. Return: AX = offset of video RAM
  5108.     ES:BX -> virtual text RAM buffer
  5109. SeeAlso: AX=5201h
  5110. --------N-108B-------------------------------
  5111. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  5112.     AH = 8Bh
  5113. SeeAlso: AH=92h,AH=93h
  5114. --------N-1090-------------------------------
  5115. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  5116.     AH = 90h
  5117. Return: AL = current video mode (see AH=00h)
  5118. SeeAlso: AH=91h
  5119. --------N-1091-------------------------------
  5120. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  5121.     AH = 91h
  5122. Return: AL = video adapter type (see below)
  5123. Note:    types less than 80h do not imply that the current user is on the host
  5124. SeeAlso: AH=90h
  5125.  
  5126. Values for video adapter type:
  5127.  00h    monochrome
  5128.  01h    Hercules monochrome graphics
  5129.  02h    CGA
  5130.  03h    EGA
  5131.  04h    VGA
  5132.  80h    monochrome text terminal
  5133.  81h    Hercules graphics terminal
  5134.  82h    color graphics terminal
  5135. --------N-1092-------------------------------
  5136. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  5137.     AH = 92h
  5138. Note:    the terminal will be updated even when screen updates are inhibited if
  5139.       TTY output is used
  5140. SeeAlso: AH=8Bh
  5141. --------N-1093-------------------------------
  5142. INT 10 - Alloy MW386 - REDRAW SCREEN
  5143.     AH = 93h
  5144. SeeAlso: AH=8Bh,AH=FFh
  5145. --------A-10A0-------------------------------
  5146. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  5147.     AH = A0h
  5148.     ???
  5149. Return: ???
  5150. Program: CU Writer is a public-domain Thai-English word processor from
  5151.       Chulalongkorn University, Bangkok
  5152. SeeAlso: AH=80h"CU Writer",AH=B0h
  5153. --------A-10B0-------------------------------
  5154. INT 10 - CU Writer v1.4 - PUT PIXEL
  5155.     AH = B0h
  5156.     ???
  5157. Return: ???
  5158. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  5159. --------A-10B1-------------------------------
  5160. INT 10 - CU Writer v1.4 - MOVE TO
  5161.     AH = B1h
  5162.     ???
  5163. Return: ???
  5164. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  5165. --------A-10B2-------------------------------
  5166. INT 10 - CU Writer v1.4 - DRAW LINE TO
  5167.     AH = B2h
  5168.     ???
  5169. Return: ???
  5170. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  5171. --------A-10B3-------------------------------
  5172. INT 10 - CU Writer v1.4 - FLOOD FILL
  5173.     AH = B3h
  5174.     ???
  5175. Return: ???
  5176. SeeAlso: AH=B2h,AH=B5h
  5177. --------A-10B4-------------------------------
  5178. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  5179.     AH = B4h
  5180.     ???
  5181. Return: ???
  5182. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  5183. --------A-10B5-------------------------------
  5184. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  5185.     AH = B5h
  5186.     ???
  5187. Return: ???
  5188. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5189. --------b-10BF00-----------------------------
  5190. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  5191.     AX = BF00h
  5192. Desc:    specify that the external monitor become the active monitor
  5193. Note:    all registers preserved and the internal monitor is blanked
  5194. SeeAlso: AX=BF01h
  5195. --------b-10BF01-----------------------------
  5196. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  5197.     AX = BF01h
  5198. Desc:    specify that the internal monitor become the active monitor
  5199. Note:    all registers preserved and the external monitor is blanked
  5200. SeeAlso: AX=BF00h
  5201. --------b-10BF02-----------------------------
  5202. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  5203.     AX = BF02h
  5204.     BH = master mode
  5205.         04h CGA
  5206.         05h EGA
  5207.         07h MDA
  5208. SeeAlso: AX=BF03h
  5209. --------b-10BF03BX0000-----------------------
  5210. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  5211.     AX = BF03h
  5212.     BX = 0000h
  5213. Return: BH = active monitor (00h = external, 01h = internal)
  5214.     BL = master mode (see below)
  5215.     CH = 00h (reserved)
  5216.        = 31h if QVision VGA
  5217.     CL = switchable VDU mode supported (see below)
  5218.     DH = internal monitor type (see below)
  5219.     DL = external monitor type (see below)
  5220. SeeAlso: AH=1Ah,AX=BF00h,AX=BF01h,AX=BF02h
  5221.  
  5222. Values for master mode:
  5223.  00h    switchable VDU not present
  5224.  04h    CGA
  5225.  05h    EGA
  5226.  07h    MDA
  5227.  08h    switchable LCD controller present
  5228.  09h    plasma VGA
  5229.  
  5230. Values for monitor type:
  5231.  00h    none
  5232.  01h    dual-mode monitor
  5233.  02h    5153 RGB monitor (RGBI 16-color)
  5234.  03h    Compaq Color monitor
  5235.  04h    640x400 flat panel (Plasma CGA)
  5236.  05h    VGC monochrome
  5237.  06h    VGC color
  5238.  07h    8-level mono LCD VGA
  5239.  08h    16-level mono plasma VGA
  5240.  09h    4-level mono LCD CGA
  5241.  0Ah    16-level mono LCD VGA
  5242.  0Bh    active-matrix color VGA
  5243.  0Ch    active-matrix mono VGA
  5244.  
  5245. Bitfields for switchable VDU mode support:
  5246. Bit(s)    Description
  5247.  0    CGA supported
  5248.  1,2    reserved (1)
  5249.  3    MDA supported
  5250.  4    BitBLT engine available
  5251.  5    132-column support availble
  5252.  6    640x480x256 mode available
  5253.  7    8-bit DAC mode available
  5254. --------b-10BF04-----------------------------
  5255. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  5256.     AX = BF04h
  5257.     BH = new state of delay (00h enabled, 01h disabled)
  5258. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5259.       version of the list will provide more definite information
  5260. SeeAlso: AX=BF05h
  5261. --------b-10BF05-----------------------------
  5262. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  5263.     AX = BF05h
  5264.     BH = new state of video
  5265.         00h off
  5266.         01h on
  5267. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5268.       version of the list will provide more definite information
  5269. SeeAlso: AH=12h/BL=36h,AX=BF04h
  5270. --------b-10BF06-----------------------------
  5271. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  5272.     AX = BF06h
  5273.     CL = address to be read from gray scale table
  5274. Return: AL = bit 3-0 - Value read from gray scale table
  5275.     CL = address to be read from gray scale table
  5276. SeeAlso: AH=12h/BL=33h,AX=BF07h
  5277. --------b-10BF07-----------------------------
  5278. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  5279.     AX = BF07h
  5280.     CH = value to write to gray scale table
  5281.     CL = address to be written to gray scale table
  5282. SeeAlso: AX=BF06h,AX=BF08h
  5283. --------b-10BF08-----------------------------
  5284. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  5285.     AX = BF08h
  5286.     CH = bits 7-4 green weight
  5287.          bits 3-0 blue weight
  5288.     CL = bits 7-4 unused
  5289.          bits 3-0 red weight
  5290. SeeAlso: AH=12h/BH=33h,AX=BF07h
  5291. --------b-10BF09-----------------------------
  5292. INT 10 - VIDEO - Compaq LTE Lite - ENABLE ???
  5293.     AX = BF09h
  5294. Return: CF clear
  5295. Note:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5296.       to 6Fh and index 83h to 04h
  5297. SeeAlso: AX=BF0Ah,AX=BF0Bh
  5298. --------b-10BF0A-----------------------------
  5299. INT 10 - VIDEO - Compaq LTE Lite - DISABLE ???
  5300.     AX = BF0Ah
  5301. Return: CF clear
  5302. Note:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5303.       to 80h and index 83h to FBh
  5304. SeeAlso: AX=BF09h,AX=BF0Bh
  5305. --------b-10BF0B-----------------------------
  5306. INT 10 - VIDEO - Compaq LTE Lite - CHECK WHETHER ??? ENABLED
  5307.     AX = BF0Bh
  5308. Return: CF clear
  5309.     AX = state (0000h disabled, 0001h enabled)
  5310. SeeAlso: AX=BF09h,AX=BF0Ah
  5311. --------b-10BF0C-----------------------------
  5312. INT 10 - VIDEO - Compaq SystemPro XL - CLEAR ???
  5313.     AX = BF0Ch
  5314. Return: CF clear
  5315. SeeAlso: AX=BF0Dh,AX=BF0Eh
  5316. --------b-10BF0D-----------------------------
  5317. INT 10 - VIDEO - Compaq SystemPro XL - SET ???
  5318.     AX = BF0Dh
  5319. Return: CF clear
  5320. SeeAlso: AX=BF0Ch,AX=BF0Eh
  5321. --------b-10BF0E-----------------------------
  5322. INT 10 - VIDEO - Compaq SystemPro XL - CHECK WHETHER ??? SET
  5323.     AX = BF0Eh
  5324. Return: CF clear
  5325.     AL = ??? (00h clear [AX=BF0Ch called] or 01h set [AX=BF0Dh called])
  5326. SeeAlso: AX=BF0Ch,AX=BF0Dh
  5327. --------b-10BF0F-----------------------------
  5328. INT 10 - VIDEO - Compaq SystemPro XL, LTE Lite - ???
  5329.     AX = BF0Fh
  5330.     BX = ??? or FFFFh to get current value
  5331. Return: CF clear
  5332.     AX = ???
  5333. Note:    this function calls AX=BF10h if BX=FFFFh and an EISA System ROM is
  5334.       present
  5335. SeeAlso: AX=BF10h
  5336. --------b-10BF10-----------------------------
  5337. INT 10 - VIDEO - Compaq SystemPro XL, LTE Lite - GET ???
  5338.     AX = BF10h
  5339. Return: CF clear
  5340.     AX = ???
  5341. SeeAlso: AX=BF0Fh
  5342. --------b-10BF11-----------------------------
  5343. INT 10 - VIDEO - Compaq LTE Lite, ProSignia - GET ???
  5344.     AX = BF11h
  5345. Return: AL = BFh if supported
  5346.         CF clear
  5347.         ES:BX -> ASCII signature "COMPAQ"
  5348.         ES:DI -> ???
  5349. --------b-10BF12-----------------------------
  5350. INT 10 - VIDEO - Compaq LTE Lite, ProSignia - ???
  5351.     AX = BF12h
  5352.     BL = ???
  5353. Return: CF clear
  5354. Note:    this function is a NOP if the VGA subsystem is inactive or the current
  5355.       Display Combination Code is 10h or higher
  5356. --------V-10BFA0BXADAD-----------------------
  5357. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  5358.     AX = BFA0h
  5359.     BX = ADADh
  5360. Return: AX = BDBDh if newer ADAPT.COM installed
  5361.         BX = BCD version (BH = major, BL = minor)
  5362.         CL = ???
  5363.         CH = ???
  5364.         DL = ???
  5365.     AX = ADADh if older version of ADAPT.COM installed
  5366. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  5367.       optionally-resident utility for setting display colors and cursor
  5368.       size; when resident, it also includes a screen blanker
  5369. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  5370. Index:    screen saver;ADAPT
  5371. --------V-10BFA1-----------------------------
  5372. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  5373.     AX = BFA1h
  5374. Return: AX = BDBEh if supported
  5375.         CH = current value of ???
  5376.         DL = current value of ???
  5377. SeeAlso: AX=BFA0h,AX=BFA2h
  5378. --------V-10BFA2-----------------------------
  5379. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  5380.     AX = BFA2h
  5381.     CH = new value for ???
  5382.     DL = new value for ???
  5383. Return: AX = BDBEh if supported
  5384. SeeAlso: AX=BFA0h,AX=BFA1h
  5385. --------A-10C0-------------------------------
  5386. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  5387.     AH = C0h
  5388.     ???
  5389. Return: ???
  5390. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  5391. --------A-10C1-------------------------------
  5392. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  5393.     AH = C1h
  5394.     ???
  5395. Return: ???
  5396. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  5397. --------A-10C2-------------------------------
  5398. INT 10 - CU Writer v1.4 - REVERSE TEXT
  5399.     AH = C2h
  5400.     ???
  5401. Return: ???
  5402. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  5403. --------A-10C3-------------------------------
  5404. INT 10 - CU Writer v1.4 - TEXT BAR
  5405.     AH = C3h
  5406.     ???
  5407. Return: ???
  5408. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  5409. --------A-10C4-------------------------------
  5410. INT 10 - CU Writer v1.4 - TEXT MENU
  5411.     AH = C4h
  5412.     ???
  5413. Return: ???
  5414. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  5415. ----------10CB00-----------------------------
  5416. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  5417.     AX = CB00h
  5418. Note:    combined with AX=CB06h, this function permits the use of video mode
  5419.       13h together with the VGA's unchained mode
  5420. SeeAlso: AX=CB06h,AX=CBFFh
  5421. ----------10CB01-----------------------------
  5422. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  5423.     AX = CB01h
  5424.     BX = offset of page 1
  5425. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  5426.       default is 0000h
  5427. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  5428. ----------10CB02-----------------------------
  5429. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  5430.     AX = CB02h
  5431.     BX = offset of page 2
  5432. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  5433.       default is 3E80h (16000, for 320x200)
  5434. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  5435. ----------10CB03-----------------------------
  5436. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  5437.     AX = CB03h
  5438.     BX = offset of page 3
  5439. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  5440.       default is 7D00h (32000, for 320x200)
  5441. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  5442. ----------10CB04-----------------------------
  5443. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  5444.     AX = CB04h
  5445.     BX = offset of page 4
  5446. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  5447.       default is BB80h (48000, for 320x200)
  5448. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  5449. ----------10CB05-----------------------------
  5450. INT 10 - UNCHAIN - SAVE PALETTE
  5451.     AX = CB05h
  5452. SeeAlso: AX=CB00h,AX=CB06h
  5453. ----------10CB06-----------------------------
  5454. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  5455.     AX = CB06h
  5456. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  5457. ----------10CBFF-----------------------------
  5458. INT 10 - UNCHAIN - INSTALLATION CHECK
  5459.     AX = CBFFh
  5460. Return: AX = CCBBh if installed
  5461. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  5462.       development tools with Mode X video in the absence of a second
  5463.       monitor
  5464. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  5465. --------V-10CC00SI0000-----------------------
  5466. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  5467.     AX = CC00h
  5468.     SI = 0000h (if checking version)
  5469. Return: CX = ABCDh
  5470.     AL = Ultravision extensions
  5471.         00h enabled
  5472.         FFh disabled
  5473.     AH = card designator
  5474.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  5475.     DX = support for high resolution modes
  5476.         00h not active
  5477.         01h active
  5478.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  5479.        = unchanged for versions <1.2
  5480. SeeAlso: AX=CC01h,AX=CC02h
  5481. --------V-10CC01-----------------------------
  5482. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  5483.     AX = CC01h
  5484. Notes:    subsequent BIOS calls will be passed through to previous handler
  5485.     should be followed immediately by mode set to restore normal EGA/VGA
  5486.       state
  5487. SeeAlso: AX=CC02h
  5488. --------V-10CC02-----------------------------
  5489. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  5490.     AX = CC02h
  5491. Note:    should be followed immediately by mode set to restore previous
  5492.       UltraVision state
  5493. SeeAlso: AX=CC01h
  5494. --------V-10CD00-----------------------------
  5495. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  5496.     AX = CD00h
  5497.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  5498.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  5499. Notes:    if palette locking is in effect for the current mode, the new colors
  5500.       will be displayed immediately; otherwise, the system reverts to the
  5501.       default palette
  5502.     palette table 0 is reserved for the default palette and cannot be set
  5503.     UltraVision always sets the border color to black
  5504. SeeAlso: AX=CD01h,AX=CD02h
  5505. --------V-10CD01-----------------------------
  5506. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  5507.     AX = CD01h
  5508.     CL = palette locking value
  5509.         00h none
  5510.         01h text modes only (02h,03h)
  5511.         FFh all modes (all standard color text and graphics modes)
  5512. Notes:    intended for video modes with 16 or fewer colors
  5513. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  5514. --------V-10CD02-----------------------------
  5515. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  5516.     AX = CD02h
  5517. Return: CL = palette table number
  5518.     DS:DX -> 17-byte palette register list
  5519.     DS:SI -> current font names table (see below)
  5520. Note:    only the font names are valid on monochrome EGA systems
  5521. SeeAlso: AX=1009h,AX=CD00h
  5522.  
  5523. Format of palette register list:
  5524. Offset    Size    Description
  5525.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  5526.  10h    BYTE    border color
  5527.  
  5528. Format of current font names table (v2+):
  5529. Offset    Size    standard EGA    HiRes EGA    VGA
  5530.  00h  8 BYTEs    N/A        F19 font    F20 font
  5531.  08h  8 BYTEs    F14 font    F14 font    F14 font
  5532.  10h  8 BYTEs    N/A        F11 font    F10 font
  5533.  18h  8 BYTEs    F8 font        F8 font        F8 font
  5534.  
  5535. Format of current font names table (v1.x):
  5536. Offset    Size    HiRes EGA
  5537.  00h  8 BYTEs    F19/F14 font
  5538.  08h  8 BYTEs    F11/F8 font
  5539. --------V-10CD03-----------------------------
  5540. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  5541.     AX = CD03h
  5542. Return: CL = palette locking value
  5543.         00h none
  5544.         01h text modes only
  5545.         FFh all modes
  5546. SeeAlso: AX=CD01h
  5547. --------V-10CD04-----------------------------
  5548. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  5549.     AX = CD04h
  5550. Return: AL = mode number (see below)
  5551. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  5552.  
  5553. Values for video mode number:
  5554.  11h    80x25
  5555.  12h    80x43, 80x50
  5556.  13h    80x34, 80x36
  5557.  14h    80x60, 80x63
  5558.  19h    94x25
  5559.  1Ah    94x43, 94x50
  5560.  1Bh    94x36
  5561.  1Ch    94x63
  5562.  21h    108x25
  5563.  22h    108x43, 108x50
  5564.  23h    107x34, 108x36
  5565.  24h    108x60, 108x63
  5566.  31h    120x25
  5567.  32h    120x43, 120x50
  5568.  33h    132x25
  5569.  34h    132x44, 132x50
  5570.  39h    120x36
  5571.  3Ah    120x63
  5572.  3Bh    132x36
  5573.  3Ch    132x60
  5574. Index:    video modes
  5575. --------V-10CD05-----------------------------
  5576. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  5577.     AX = CD05h
  5578.     CL = type
  5579.         00h line cursor
  5580.         FFh box cursor
  5581. Note:    sets default cursor type for text-based programs
  5582. SeeAlso: AH=01h,AX=CD06h
  5583. --------V-10CD06-----------------------------
  5584. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  5585.     AX = CD06h
  5586. Return: CL = type
  5587.         00h line cursor
  5588.         FFh box cursor
  5589. SeeAlso: AH=03h,AX=CD05h
  5590. --------V-10CD07-----------------------------
  5591. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  5592.     AX = CD07h
  5593.     CL = hardware underline status
  5594.         00h off (color systems only)
  5595.         01h underline below characters
  5596.         02h strike through characters
  5597.     BL = foreground color for normal text (FFh = current)
  5598.     BH = foreground color for bright text (FFh = current)
  5599. Return: CL = hardware underline status
  5600.     BL = current foreground color for normal text
  5601.     BH = current foreground color for bright text
  5602. Notes:    when underline or strikeout is enabled in color text modes, the
  5603.       specified colors will be assigned temporarily to colors 01h and 09h,
  5604.       allowing affected text to match non-underlined text.    The color
  5605.       remapping uses values from the current onscreen palette regardless
  5606.       of the palette locking status (see AX=CD01h)
  5607.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  5608.       strikeout without color remapping
  5609. SeeAlso: AX=CD08h
  5610. --------V-10CD08-----------------------------
  5611. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  5612.     AX = CD08h
  5613. Return: CL = hardware underline status (see AX=CD07h)
  5614.     BL = foreground color for normal text
  5615.     BH = foreground color for bright text
  5616. Note:    only CL is valid on monochrome EGA systems
  5617. SeeAlso: AX=CD07h
  5618. --------V-10CD10-----------------------------
  5619. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  5620.     AX = CD10h
  5621.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  5622.     CX = ABCDh load 9xN alternate font (v2+)
  5623.        else number of characters to load
  5624.         DX = character offset into font table
  5625.         DS:SI -> 8-byte ASCII font name
  5626.     ES:BP -> font definitions
  5627. Return: AX = FFFFh if invalid font parameters
  5628. Notes:    loads the designated characters into UltraVision's resident font area
  5629.     should be followed by a video mode set to reload character generator
  5630. SeeAlso: AX=1100h
  5631. --------V-10CD-------------------------------
  5632. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  5633.     AH = CDh
  5634.     AL = text mode number (see AX=CD04h)
  5635. Return: AX = CDCDh if invalid mode
  5636. SeeAlso: AX=CD04h
  5637. --------A-10D0-------------------------------
  5638. INT 10 - CU Writer v1.4 - LOAD PICTURE
  5639.     AH = D0h
  5640.     ???
  5641. Return: ???
  5642. SeeAlso: AH=B0h"CU Writer",AH=C4h
  5643. --------V-10D5-------------------------------
  5644. INT 10 - Netroom SCRNCLK - ???
  5645.     AH = D5h
  5646.     ???
  5647. Return: ???
  5648. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  5649. --------V-10DFA5-----------------------------
  5650. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  5651.     AX = DFA5h
  5652. Return: AX = BDBFh if supported
  5653.         ES:DI -> ??? data area
  5654.         BX = ES
  5655. SeeAlso: AX=BFA0h
  5656. --------V-10EF-------------------------------
  5657. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  5658.     AH = EFh
  5659. Return: DL = video adapter type
  5660.         00h original Hercules
  5661.         01h Hercules Plus
  5662.         02h Hercules InColor???
  5663.     DH = memory mode byte
  5664.         01h "half" mode
  5665.         03h "full" mode
  5666. Program: MSHERC.COM is a support program for the Microsoft Quick languages which
  5667.       makes their graphics libraries compatible with a Hercules card by
  5668.       adding video modes 08h and 88h, and supporting text in the new
  5669.       graphics modes.
  5670. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  5671.       a CGA.
  5672.     MSHERC performs an installation check by setting DL=FFh and testing
  5673.       whether it has been changed on return
  5674. Index:    installation check;MSHERC
  5675. --------V-10F0-------------------------------
  5676. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  5677.     AH = F0h
  5678.     BL = register number
  5679.     BH = 00h
  5680.     DX = group index
  5681.         Pointer/data chips
  5682.            00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  5683.            08h Sequencer (5 registers) 3C4h
  5684.            10h Graphics Controller (9 registers) 3CEh
  5685.            18h Attribute Controller (20 registers) 3C0h
  5686.         Single registers
  5687.            20h Miscellaneous Output register 3C2h
  5688.            28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5689.            30h Graphics 1 Position register 3CCh
  5690.            38h Graphics 2 Position register 3CAh
  5691. Return: BL = data
  5692. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5693.       compatibility box, and others
  5694. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  5695. --------V-10F1-------------------------------
  5696. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  5697.     AH = F1h
  5698.     DX = group index (see AH=F0h)
  5699.         if single register:
  5700.         BL = value to write
  5701.         otherwise
  5702.         BL = register number
  5703.         BH = value to write
  5704. Return: BL = data
  5705. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5706.       compatibility box, and others
  5707. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  5708. --------V-10F2-------------------------------
  5709. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  5710.     AH = F2h
  5711.     CH = starting register number
  5712.     CL = Number of registers (>1)
  5713.     DX = group index
  5714.          00h CRTC (3B4h mono modes, 3D4h color modes)
  5715.          08h Sequencer 3C4h
  5716.          10h Graphics Controller 3CEh
  5717.          18h Attribute Controller 3C0h
  5718.     ES:BX -> buffer, CL bytes
  5719. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5720.       compatibility box, and others
  5721. SeeAlso: AH=F0h,AH=F3h
  5722. --------V-10F3-------------------------------
  5723. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  5724.     AH = F3h
  5725.     CH = starting register
  5726.     CL = number of registers (>1)
  5727.     DX = group index (see AH=F2h)
  5728.     ES:BX -> buffer, CL bytes
  5729. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5730.       compatibility box, and others
  5731. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  5732. --------V-10F4-------------------------------
  5733. INT 10 - EGA Register Interface Library - READ REGISTER SET
  5734.     AH = F4h
  5735.     CX = number of registers to read (>1)
  5736.     ES:BX -> table of records (see below)
  5737. Return: register values in table filled in
  5738. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5739.       compatibility box, and others
  5740. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  5741.  
  5742. Format of entries in table of register records:
  5743. Offset    Size    Description
  5744.  00h    WORD    group index
  5745.         Pointer/data chips
  5746.            00h CRTC (3B4h mono modes, 3D4h color modes)
  5747.            08h Sequencer 3C4h
  5748.            10h Graphics Controller 3CEh
  5749.            18h Attribute Controller 3C0h
  5750.         Single registers
  5751.            20h Miscellaneous Output register 3C2h
  5752.            28h Feature Control register (3BAh mono modes, 3DAh color)
  5753.            30h Graphics 1 Position register 3CCh
  5754.            38h Graphics 2 Position register 3CAh
  5755.  02h    BYTE    register number (0 for single registers)
  5756.  03h    BYTE    register value
  5757. --------V-10F5-------------------------------
  5758. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  5759.     AH = F5h
  5760.     CX = number of registers to write (>1)
  5761.     ES:BX -> table of records (see AH=F4h)
  5762. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5763.       compatibility box, and others
  5764. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  5765. --------V-10F6-------------------------------
  5766. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  5767.     AH = F6h
  5768. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  5769.       others
  5770. SeeAlso: AH=F7h
  5771. --------V-10F7-------------------------------
  5772. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  5773.     AH = F7h
  5774.     DX = port number
  5775.        Pointer/data chips
  5776.           00h CRTC (3B4h mono modes, 3D4h color modes)
  5777.           08h Sequencer 3C4h
  5778.           10h Graphics Controller 3CEh
  5779.           18h Attribute Controller 3C0h
  5780.        Single registers
  5781.           20h Miscellaneous Output register 3C2h
  5782.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5783.           30h Graphics 1 Position register 3CCh
  5784.           38h Graphics 2 Position register 3CAh
  5785.     ES:BX -> table of one-byte entries, one byte to be written to each
  5786.          register
  5787. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5788.       compatibility box, and others
  5789. SeeAlso: AH=F6h
  5790. --------V-10FA--BX0000-----------------------
  5791. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  5792.     AH = FAh
  5793.     BX = 0000h
  5794. Return: BX = 0000h if RIL driver not present
  5795.     ES:BX -> EGA Register Interface version number, if present:
  5796.         byte 0 = major release number
  5797.         byte 1 = minor release number
  5798. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5799.       compatibility box, and others
  5800. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  5801. --------K-10FA-------------------------------
  5802. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  5803.     AH = FAh
  5804. Return: AX = 00FAh if installed
  5805.         ES = segment of resident code
  5806. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  5807.       Steiner
  5808. Index:    screen saver;FASTBUFF
  5809. --------V-10FE-------------------------------
  5810. INT 10 - TopView - GET SHADOW BUFFER
  5811.     AH = FEh
  5812.     ES:DI -> assumed video buffer
  5813.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  5814.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  5815. Return: ES:DI -> actual video buffer for calling process
  5816. Desc:    Determine the address of the virtual screen to which the program
  5817.       should write instead of the actual video memory; this permits
  5818.       programs to be multitasked without interfering with each other's
  5819.       output, and allows memory managers to move the video memory to
  5820.       permit larger programs to be loaded.
  5821. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  5822.       returned unchanged; RSIS is the Relocated Screen Interface
  5823.       Specification
  5824.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  5825.       whether a particular page exists
  5826.     TopView requires a call to AH=FFh to notify it that the screen has
  5827.       changed; DESQview will check for changes itself until the first call
  5828.       to AH=FFh
  5829. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  5830. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  5831. --------V-10FF-------------------------------
  5832. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  5833.     AH = FFh
  5834.     CX = number of consecutive changed characters
  5835.     ES:DI -> first changed character in shadow buffer
  5836. Notes:    avoid CX=0000h
  5837.     DESQview will discontinue the automatic screen updating initiated by
  5838.       AH=FEh after this call
  5839.     not supported (ignored) by DESQview/X 1.0x
  5840. SeeAlso: AH=93h,AH=FEh
  5841. --------E-10FF-------------------------------
  5842. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  5843.     AH = FFh
  5844.     AL = video mode (see below)
  5845. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5846.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5847. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  5848.  
  5849. Values for video mode number:
  5850.  00h    80x25 text
  5851.  01h    default text
  5852.  02h    CXxDX text
  5853.  03h    biggest text
  5854.  04h    320x200 graphics
  5855.  05h    default graphics
  5856.  06h    CXxDX graphics
  5857.  07h    biggest non-interlaced graphics
  5858.  08h    biggest graphics
  5859. Index:    video modes
  5860. --------V-10FF-------------------------------
  5861. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  5862.     AH = FFh
  5863.     AL = emulation
  5864.         43h ('C') CGA emulation
  5865.         45h ('E') EGA emulation
  5866.         4Dh ('M') Hercules emulation
  5867.         56h ('V') VGA emulation
  5868.     ES:DI -> signature string "Calamity"
  5869. Return: VGA switched to suggested mode
  5870. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  5871. --------R-10FF00-----------------------------
  5872. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  5873.     AX = FF00h
  5874. Return: BL = 00h not connected
  5875.        = 01h connected
  5876. SeeAlso: AX=FF01h,AX=FF02h
  5877. --------R-10FF01-----------------------------
  5878. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  5879.     AX = FF01h
  5880. SeeAlso: AX=FF00h,AX=FF02h
  5881. --------R-10FF02-----------------------------
  5882. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  5883.     AX = FF02h
  5884. Return: ES:DI -> ASCIZ phone number
  5885. SeeAlso: AX=FF00h,AX=FF01h
  5886. --------C-11---------------------------------
  5887. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  5888. Desc:    automatically generated by the CPU when the AC flag is set, the current
  5889.       privilege level is 3, and a misaligned memory access (WORD not on an
  5890.       even address or DWORD not on a multiple of 4) is made
  5891. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  5892.       Debugger 386
  5893. --------B-11---------------------------------
  5894. INT 11 - BIOS - GET EQUIPMENT LIST
  5895. Return: (E)AX = BIOS equipment list word (see below)
  5896. Note:    since older BIOSes do not know of the existence of EAX, the high word
  5897.       of EAX should be cleared before this call if any of the high bits
  5898.       will be tested
  5899.  
  5900. Bitfields for BIOS equipment list:
  5901. Bit(s)    Description
  5902.  0    floppy disk(s) installed (see 6-7)
  5903.  1    80x87 coprocessor installed
  5904.  3-2    number of 16K banks of RAM on motherboard (PC only)
  5905.     number of 64K banks of RAM on motherboard (XT only)
  5906.  2    pointing device installed (PS)
  5907.  3    unused (PS)
  5908.  5-4    initial video mode
  5909.     00 EGA, VGA, or PGA
  5910.     01 40x25 color
  5911.     10 80x25 color
  5912.     11 80x25 monochrome
  5913.  7-6    number of floppies installed less 1 (if 0 set)
  5914.  8    DMA support installed (PCjr, Tandy 1400LT)
  5915.     DMA support *not* installed (Tandy 1000's)
  5916.  11-9    number of serial ports installed
  5917.  12    game port installed
  5918.  13    serial printer attached (PCjr)
  5919.     internal modem installed (PC/Convertible)
  5920.  15-14    number of parallel ports installed
  5921. ---Compaq, Dell, and many other 386/486 machines--
  5922.  23    page tables set so that Weitek coprocessor addressable in real mode
  5923.  24    Weitek math coprocessor present
  5924. ---Compaq Systempro---
  5925.  25    internal DMA parallel port available
  5926.  26    IRQ for internal DMA parallel port (if bit 25 set)
  5927.     0 = IRQ5
  5928.     1 = IRQ7
  5929.  28-27    parallel port DMA channel
  5930.     00 DMA channel 0
  5931.     01 DMA channel 0 ???
  5932.     10 reserved
  5933.     11 DMA channel 3
  5934. SeeAlso: INT 12
  5935. --------d-11----SI6A6A-----------------------
  5936. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  5937.     SI = 6A6Ah
  5938.     AH = command (see below)
  5939.     AL = SCSI Addressing (see below)
  5940. Return: CF clear if successful
  5941.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  5942.         AH = ??? for command 01h
  5943.     CF set on error
  5944.         AL = error code
  5945. SeeAlso: INT 21/AX=4402h"ASPI"
  5946.  
  5947. Bitfields for SCSI addressing:
  5948. Bit(s)    Description
  5949.  7-6    Host Adapter
  5950.  5-3    SCSI Target ID
  5951.  2-0    SCSI Target LUN (logical unit number)
  5952.  
  5953. Values for SDLP command:
  5954.  00h    SDLP initialization
  5955.  01h    SDLP System Identify
  5956.  02h    simple read sectors
  5957.  03h    simple write sectors
  5958.  04h    simple verify sectors/seek to sector
  5959.  05h    get device size/type
  5960.  06h    ready unit
  5961.  07h    format unit
  5962.  08h    diagnostics
  5963.  09h    rewind
  5964.  0Ah    erase
  5965.  0Bh    write filemarks
  5966.  0Ch    space
  5967.  0Dh    prevent/allow media removal
  5968.  0Eh    load/unload media
  5969.  0Fh    reserved - returns good status
  5970.  10h    set block size
  5971.  11h    write setmark
  5972.  12h    set error level
  5973.  13h    get address of Request Sense Buffer
  5974.  14h    get SDLP error via Request Sense
  5975.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  5976.  FDh    reset current SCSI HAC
  5977.  FEh    get/set current SCSI HAC
  5978.  FFh    execute SCSI command
  5979. --------V-110225BX6900-----------------------
  5980. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  5981.     AX = 0225h
  5982.     BX = 6900h
  5983. Return: BL = 23h
  5984.     ES:DI -> ASCIZ "BLNKIT"
  5985. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5986.       Inc.
  5987. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  5988. Index:    screen saver;Blank-It
  5989. --------V-110225BX6901-----------------------
  5990. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  5991.     AX = 0225h
  5992.     BX = 6901h
  5993.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  5994.          largest value is 59 minutes (FBACh or 64428)
  5995. Return: CF clear if successful
  5996.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  5997.         AH = ???
  5998.     CF set on error
  5999.         AL = error code
  6000. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6904h
  6001. Index:    screen saver;Blank-It
  6002. --------V-110225BX6902-----------------------
  6003. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  6004.     AX = 0225h
  6005.     BX = 6902h
  6006. Return: CF clear if successful
  6007.     CF set on error
  6008.         AL = error code
  6009. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6903h
  6010. Index:    screen saver;Blank-It
  6011. --------V-110225BX6903-----------------------
  6012. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  6013.     AX = 0225h
  6014.     BX = 6903h
  6015. Return: CF clear if successful
  6016.     CF set on error
  6017.         AL = error code
  6018. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6902h
  6019. Index:    screen saver;Blank-It
  6020. --------V-110225BX6904-----------------------
  6021. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  6022.     AX = 0225h
  6023.     BX = 6904h
  6024. Return: CF clear if successful
  6025.         BX = timeout (see BX=6901h)
  6026.     CF set on error
  6027.         AL = error code
  6028. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6901h
  6029. Index:    screen saver;Blank-It
  6030. --------V-110225BX6905-----------------------
  6031. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  6032.     AX = 0225h
  6033.     BX = 6905h
  6034. Return: CF clear if successful
  6035.     CF set on error
  6036.         AL = error code
  6037. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6906h
  6038. Index:    screen saver;Blank-It
  6039. --------V-110225BX6906-----------------------
  6040. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  6041.     AX = 0225h
  6042.     BX = 6906h
  6043. Return: CF clear if successful
  6044.     CF set on error
  6045.         AL = error code
  6046. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6047.       Inc.
  6048. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6905h
  6049. Index:    screen saver;Blank-It
  6050. --------V-110225BX6907-----------------------
  6051. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  6052.     AX = 0225h
  6053.     BX = 6907h
  6054. Return: CF clear if successful
  6055.     CF set on error
  6056.         AL = error code
  6057. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6908h
  6058. Index:    screen saver;Blank-It
  6059. --------V-110225BX6908-----------------------
  6060. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  6061.     AX = 0225h
  6062.     BX = 6908h
  6063. Return: CF clear if successful
  6064.     CF set on error
  6065.         AL = error code
  6066. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6907h
  6067. Index:    screen saver;Blank-It
  6068. --------V-110225BX6909-----------------------
  6069. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  6070.     AX = 0225h
  6071.     BX = 6909h
  6072.     CL = key scan code (see below)
  6073. Return: CF clear if successful
  6074.     CF set on error
  6075.         AL = error code
  6076. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6077.       Inc.
  6078. SeeAlso: AX=0225h/BX=6900h
  6079. Index:    screen saver;Blank-It|hotkeys;Blank-It
  6080.  
  6081. Values for key scan code:
  6082.  00h    No hot key
  6083.  1Dh    Left CTRL
  6084.  2Ah    Left Shift
  6085.  36h    Right Shift
  6086.  57h    F11
  6087.  58h    F12
  6088. ----------1105D7-----------------------------
  6089. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  6090.     AX = 05D7h
  6091.     BX = product ID (0088h)
  6092. Note:    called by the BC++ IDE when an application calls
  6093.       INT 12/AX=05D7h/BX=05D7h
  6094. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  6095. Index:    installation check;Borland C++ IDE
  6096. --------F-1177-------------------------------
  6097. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  6098.     AH = 77h
  6099.     AL = subfunction
  6100.         01h request SFENGINE start
  6101.         Return: AX = 0001h
  6102.         02h check if SFENGINE started
  6103.         Return: AX = 0000h or 0001h
  6104.         03h request SFENGINE stop
  6105.         Return: AX = 0001h
  6106.         04h check if SFENGINE stopped
  6107.         Return: AX = 0000h or 0001h
  6108.         05h installation check
  6109.         Return: AX = 0001h
  6110.         06h uninstall???
  6111.         BX:DX -> return address for successful uninstall???
  6112.         Return: (at caller's address)
  6113.             AX = 0000h
  6114.         else
  6115.         Return: AX = FFFFh
  6116. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  6117.         followed by internal data area???
  6118. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  6119. Index:    installation check;RainbowFAX|installation check;SFENGINE
  6120. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  6121. --------F-1178-------------------------------
  6122. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6123.     AH = 78h
  6124.     AL = subfunction
  6125.         7801h set ???
  6126.         BX = new state for ???
  6127.             0000h ???
  6128.             else ???
  6129.         Return: AX = 0001h
  6130.         7802h set ???
  6131.         BX = ???
  6132.         CX = ???
  6133.         Return: AX = 0001h
  6134.         7803h set ???
  6135.         BX = new state for ???
  6136.             0000h ???
  6137.             else ???
  6138.         Return: AX = 0001h
  6139.         78XXh invalid subfunction
  6140.         Return: AX = FFFFh
  6141. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  6142. --------F-1179-------------------------------
  6143. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6144.     AH = 79h
  6145.     AL = subfunction
  6146.         01h set ??? flag
  6147.         Return: AX = previous state (0000h already set, 0001h clear)
  6148.         02h clear ??? flag (see subfunc 01h)
  6149.         Return: AX = 0001h
  6150.         03h set ??? flag (different from subfn 02h or 04h)
  6151.         Return: AX = 0001h
  6152.         04h clear ??? flag (different from subfn 02h or 03h)
  6153.         Return: AX = 0001h
  6154.         else
  6155.         Return: AX = FFFFh
  6156. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  6157. --------F-117A-------------------------------
  6158. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6159.     AH = 7Ah
  6160.     AL = subfunction
  6161.         01h set ??? flag
  6162.         Return: AX = previous state (0000h already set, 0001h clear)
  6163.         02h clear ??? flag
  6164.         Return: AX = 0001h
  6165.         03h set ??? flag (different from subfn 02h)
  6166.         Return: AX = 0001h
  6167.         else
  6168.         Return: AX = FFFFh
  6169. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  6170. --------F-117C-------------------------------
  6171. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6172.     AH = 7Ch
  6173.     AL = subfunction
  6174.         01h set ??? flag (see also subfn 02h)
  6175.         Return: AX = 0001h
  6176.         02h clear ??? flag (see also subfn 01h)
  6177.         Return: AX = 0001h
  6178.         else
  6179.         Return: AX = FFFFh
  6180. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  6181. --------S-11BC--DX1954-----------------------
  6182. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  6183.     AH = BCh
  6184.     DX = 1954h
  6185. Return: AX = 1954h
  6186.     ES:DX -> entry point of driver (instead of INT 14)
  6187. SeeAlso: INT 14/AH=04h"FOSSIL"
  6188. --------d-11FF--SI6A6A-----------------------
  6189. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  6190.     AH = FFh
  6191.     SI = 6A6Ah
  6192.     AL = SCSI Addressing (see below)
  6193.     CX = bytes of data to be transmitted (max FFF0h)
  6194.     DH = 00h
  6195.     DL = length of SCSI Command Descriptor Block
  6196.     DS:DI -> SCSI Command Descriptor Block
  6197.     ES:BX -> data buffer
  6198. Return: CF set on error
  6199.         AL = error code
  6200.     CF clear if successful
  6201. Note:    because of busmaster operations with WD7000FASST avoid accessing
  6202.       video memory directly; check 386 memory manager for VDS support.
  6203.       The WD7000XTAT works with programmed IO and does not have this
  6204.       limitation.
  6205. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  6206.  
  6207. Bitfields for SCSI addressing:
  6208. Bit(s)    Description
  6209.  2-0    SCSI Target LUN (logical unit number)
  6210.  5-3    SCSI Target ID
  6211.  7    write flag, set for write operations, clear otherwise
  6212. --------T-11FFFECXFFFE-----------------------
  6213. INT 11 - BACK&FORTH (before v1.62) API
  6214.     AX = FFFEh
  6215.     CX = FFFEh
  6216.     BX = function
  6217.         00h installation check
  6218.         Return: AX = 0001h BNFHIGH and BNFLOW both loaded
  6219.                = 0003h only BNFHIGH loaded
  6220.                else neither loaded
  6221.         01h ???
  6222.         Return: DX:AX -> ???
  6223.         02h ???
  6224.         03h ???
  6225.         04h ???
  6226.         05h ??? switches current PSP segment and stack if BNFLOW has not
  6227.             yet announced itself installed
  6228.         06h ???
  6229.         Return: AX = ???
  6230. SeeAlso: INT 12/AX=FFFEh
  6231. Index:    installation check;BACK&FORTH
  6232. --------B-12---------------------------------
  6233. INT 12 - BIOS - GET MEMORY SIZE
  6234. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6235. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  6236.       XT, this value is set from the switches on the motherboard
  6237. SeeAlso: INT 11,INT 2F/AX=4A06h
  6238. --------K-12----CX1806-----------------------
  6239. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  6240.     CX = 1806h
  6241. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6242.     CX = 1960h if installed
  6243. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  6244.       accented characters and box drawing on standard QWERTY keyboards; it
  6245.       also provides break-to-DOS and screen blanking capabilities
  6246. SeeAlso: INT 14/AX=AA01h
  6247. Index:    screen saver;KEYBUI
  6248. --------d-12----CX1807-----------------------
  6249. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  6250.     CX = 1807h
  6251. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6252.     CX = 1961h if installed
  6253. Program: PARKER is an optionally-resident hard disk parking program by Johan
  6254.       Zwiekhorst
  6255. ----------1205D7BX05D7-----------------------
  6256. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  6257.     AX = 05D7h (1495d)
  6258.     BX = 05D7h
  6259. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  6260. SeeAlso: INT 11/AX=05D7h/BX=0088h
  6261. ----------124350BX4920-----------------------
  6262. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  6263.     AX = 4350h
  6264.     BX = 4920h
  6265.     CX = AB46h
  6266.     DX = 554Eh
  6267. Return: if friendly (not to be infected)
  6268.         CX:DX -> ASCIZ identity code (changes yearly)
  6269. SeeAlso: INT 21/AX=0B56h
  6270. --------T-12FFFECXFFFE-----------------------
  6271. INT 12 - Back&Forth v1.62+ - API
  6272.     AX = FFFEh
  6273.     CX = FFFEh
  6274.     BX = function
  6275.         00h installation check
  6276.         Return: AX = 0001h installed
  6277.                  else  not loaded
  6278.         02h build program ID list
  6279.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  6280.         Return: AX = number of programs defined
  6281.             ES:DI buffer filled with AX words
  6282.         03h switch to specified task (task need not be open yet)
  6283.         DX = two-letter program ID
  6284.         Return: AX = 0000h if task undefined
  6285.         04h ???
  6286.         05h ???
  6287.         06h get version (undoc)
  6288.         Return: AX = version * 100 (v1.71 = 00ABh)
  6289.         07h ???
  6290.         08h get open tasks (undoc)
  6291.         ES:DI -> task info buffer (see below)
  6292.         Return: AX = number of open tasks (max 20)
  6293.         09h ???
  6294. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  6295. SeeAlso: INT 11/AX=FFFEh
  6296. Index:    installation check;BACK&FORTH
  6297.  
  6298. Format of task info buffer:
  6299. Offset    Size    Description
  6300.  00h 21 BYTEs    ASCIZ task name
  6301.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  6302.  16h    WORD    hotkey scan code
  6303.  18h    WORD    program ID
  6304. Index:    hotkeys;Back&Forth
  6305. --------B-1300-------------------------------
  6306. INT 13 - DISK - RESET DISK SYSTEM
  6307.     AH = 00h
  6308.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  6309. Return: AH = status (see AH=01h)
  6310.     CF clear if successful (returned AH=00h)
  6311.     CF set on error
  6312. Note:    forces controller to recalibrate drive heads (seek to track 0)
  6313. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
  6314. --------B-1301-------------------------------
  6315. INT 13 - DISK - GET STATUS OF LAST OPERATION
  6316.     AH = 01h
  6317.     DL = drive (bit 7 set for hard disk)
  6318. Return: CF clear if successful (returned status 00h)
  6319.     CF set on error
  6320.     AH = status of previous operation (see below)
  6321. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  6322.       status in both AH and AL
  6323.  
  6324. Values for status:
  6325.  00h    successful completion
  6326.  01h    invalid function in AH or invalid parameter
  6327.  02h    address mark not found
  6328.  03h    disk write-protected
  6329.  04h    sector not found/read error
  6330.  05h    reset failed (hard disk)
  6331.  06h    disk changed (floppy)
  6332.  07h    drive parameter activity failed (hard disk)
  6333.  08h    DMA overrun
  6334.  09h    attempted DMA across 64K boundary
  6335.  0Ah    bad sector detected (hard disk)
  6336.  0Bh    bad track detected (hard disk)
  6337.  0Ch    unsupported track or invalid media
  6338.  0Dh    invalid number of sectors on format (hard disk)
  6339.  0Eh    control data address mark detected (hard disk)
  6340.  0Fh    DMA arbitration level out of range (hard disk)
  6341.  10h    uncorrectable CRC or ECC error on read
  6342.  11h    data ECC corrected (hard disk)
  6343.  20h    controller failure
  6344.  31h    no such drive (Compaq)
  6345.  32h    incorrect drive type stored in CMOS (Compaq)
  6346.  40h    seek failed
  6347.  80h    timeout (not ready)
  6348.  AAh    drive not ready (hard disk)
  6349.  BBh    undefined error (hard disk)
  6350.  CCh    write fault (hard disk)
  6351.  E0h    status register error (hard disk)
  6352.  FFh    sense operation failed (hard disk)
  6353. --------B-1302-------------------------------
  6354. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  6355.     AH = 02h
  6356.     AL = number of sectors to read (must be nonzero)
  6357.     CH = low eight bits of cylinder number
  6358.     CL = sector number 1-63 (bits 0-5)
  6359.          high two bits of cylinder (bits 6-7, hard disk only)
  6360.     DH = head number
  6361.     DL = drive number (bit 7 set for hard disk)
  6362.     ES:BX -> data buffer
  6363. Return: CF set on error
  6364.         if AH = 11h (corrected ECC error), AL = burst length
  6365.     CF clear if successful
  6366.     AH = status (see AH=01h)
  6367.     AL = number of sectors transferred
  6368. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6369.       enough; the read should be retried at least three times, resetting
  6370.       the disk with AH=00h between attempts
  6371.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6372.       DH (head number) since the WD-1003 controller which is the standard
  6373.       AT controller (and the controller that IDE emulates) only supports
  6374.       16 heads
  6375.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6376.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6377.       into bits 6 and 7 of DH
  6378. SeeAlso: AH=03h,AH=0Ah
  6379. --------B-1303-------------------------------
  6380. INT 13 - DISK - WRITE DISK SECTOR(S)
  6381.     AH = 03h
  6382.     AL = number of sectors to write (must be nonzero)
  6383.     CH = low eight bits of cylinder number
  6384.     CL = sector number 1-63 (bits 0-5)
  6385.          high two bits of cylinder (bits 6-7, hard disk only)
  6386.     DH = head number
  6387.     DL = drive number (bit 7 set for hard disk)
  6388.     ES:BX -> data buffer
  6389. Return: CF set on error
  6390.     CF clear if successful
  6391.     AH = status (see AH=01h)
  6392.     AL = number of sectors transferred
  6393. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6394.       enough; the write should be retried at least three times, resetting
  6395.       the disk with AH=00h between attempts
  6396.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6397.       DH (head number) since the WD-1003 controller which is the standard
  6398.       AT controller (and the controller that IDE emulates) only supports
  6399.       16 heads
  6400.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6401.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6402.       into bits 6 and 7 of DH
  6403. SeeAlso: AH=02h,AH=0Bh
  6404. --------B-1304-------------------------------
  6405. INT 13 - DISK - VERIFY DISK SECTOR(S)
  6406.     AH = 04h
  6407.     AL = number of sectors to verify (must be nonzero)
  6408.     CH = low eight bits of cylinder number
  6409.     CL = sector number 1-63 (bits 0-5)
  6410.          high two bits of cylinder (bits 6-7, hard disk only)
  6411.     DH = head number
  6412.     DL = drive number (bit 7 set for hard disk)
  6413.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  6414. Return: CF set on error
  6415.     CF clear if successful
  6416.     AH = status (see AH=01h)
  6417.     AL = number of sectors verified
  6418. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6419.       enough; the write should be retried at least three times, resetting
  6420.       the disk with AH=00h between attempts
  6421.     this function does not compare the disk with memory, it merely
  6422.       checks whether the sector's stored CRC matches the data's actual CRC
  6423.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6424.       DH (head number) since the WD-1003 controller which is the standard
  6425.       AT controller (and the controller that IDE emulates) only supports
  6426.       16 heads
  6427.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6428.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6429.       into bits 6 and 7 of DH
  6430. SeeAlso: AH=02h
  6431. --------B-1305-------------------------------
  6432. INT 13 - FLOPPY - FORMAT TRACK
  6433.     AH = 05h
  6434.     AL = number of sectors to format
  6435.     CH = track number
  6436.     DH = head number
  6437.     DL = drive number
  6438.     ES:BX -> address field buffer (see below)
  6439. Return: CF set on error
  6440.     CF clear if successful
  6441.     AH = status (see AH=01h)
  6442. Notes:    on AT or higher, call AH=17h first
  6443.     the number of sectors per track is read from the diskette parameter
  6444.       table pointed at by INT 1E
  6445. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  6446.  
  6447. Format of address field buffer entry (one per sector in track):
  6448. Offset    Size    Description
  6449.  00h    BYTE    track number
  6450.  01h    BYTE    head number (0-based)
  6451.  02h    BYTE    sector number
  6452.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  6453. --------B-1305-------------------------------
  6454. INT 13 - FIXED DISK - FORMAT TRACK
  6455.     AH = 05h
  6456.     AL = interleave value (XT-type controllers only)
  6457.     ES:BX -> 512-byte format buffer
  6458.         the first 2*(sectors/track) bytes contain F,N for each sector
  6459.            F = 00h for good sector, 80h for bad sector
  6460.            N = sector number
  6461.     CH = cylinder number (bits 8,9 in high bits of CL)
  6462.     CL = high bits of cylinder number (bits 7,6)
  6463.     DH = head
  6464.     DL = drive
  6465. Return: AH = status code (see AH=01h)
  6466. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6467.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6468.       into bits 6 and 7 of DH
  6469.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  6470.       first
  6471.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6472.       DH (head number) since the WD-1003 controller which is the standard
  6473.       AT controller (and the controller that IDE emulates) only supports
  6474.       16 heads
  6475. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  6476. --------d-1305-------------------------------
  6477. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  6478.     AH = 05h
  6479.     DL = hard drive ID
  6480.     ES:BX -> mode select data (see below)
  6481. Return: CF set on error
  6482.     AH = status code (see AH=01h)
  6483. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  6484.       format a SCSI disk with the desired parameters
  6485.     the mode select data below is from the SCSI-1 specification
  6486.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6487.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6488. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  6489.  
  6490. Format of mode select data:
  6491. Offset    Size    Description
  6492.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  6493.  01h    BYTE    reserved (0)
  6494.  02h    BYTE    medium type (0 for hard disk)
  6495.  03h    BYTE    reserved (0)
  6496.  04h    BYTE    block descriptor length (8)
  6497.  05h    BYTE    density code (0 for hard disk)
  6498.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  6499.  09h    BYTE    reserved (0)
  6500.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  6501.  0Dh    ???    vendor-specific parameter bytes (optional)
  6502. --------B-13057FSI324D-----------------------
  6503. INT 13 - 2M - FORMAT TRACK
  6504.     AX = 057Fh
  6505.     SI = 324Dh ("2M")
  6506.     CH = track number
  6507.     DH = head number
  6508.     DL = drive number
  6509.     ES:BX -> boot sector of future 2M diskette
  6510. Return:    CF set on error
  6511.     CF clear if successful
  6512.     AH = status (see AH=01h)
  6513. Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
  6514.       non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
  6515.       and 984-1066/1804-1886K (3.5 DD/HD)
  6516. Notes:    it is not necessary to call AH=17h/AH=18h first (will be ignored)
  6517.     the boot sector can be obtained from a 2M diskette already formatted
  6518.     the installation check for 2M must search a "CiriSOFT:2M:1.3" string or
  6519.       similar (recomended ":2M:" substring) in CiriSOFT TSR interface
  6520. SeeAlso: AH=05h"FLOPPY",INT 2F"CiriSOFT TSR interface"
  6521. --------B-1306-------------------------------
  6522. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  6523.     AH = 06h
  6524.     AL = interleave value
  6525.     CH = cylinder number (bits 8,9 in high bits of CL)
  6526.     CL = sector number
  6527.     DH = head
  6528.     DL = drive
  6529. Return: AH = status code (see AH=01h)
  6530. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6531.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6532.       into bits 6 and 7 of DH
  6533. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  6534. --------d-1306-------------------------------
  6535. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  6536.     AH = 06h
  6537.     AL = interleave
  6538.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  6539.     DL = hard drive ID
  6540.     DH = defect list info (see below)
  6541.     ES:BX -> defect table A, B or C (see below)
  6542. Return: CF set on error
  6543.     AH = status code (see AH=01h)
  6544. Notes:    block addresses must be in ascending order (for table B, cylinder is
  6545.       most significant, byte from index least significant; for table C,
  6546.       cylinder is most significant, sector number least significant)
  6547.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  6548.       track shall be reassigned
  6549.     table C defect sector number of FFFFFFFFh indicates that the entire
  6550.       track shall be reassigned
  6551.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6552.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6553. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  6554.  
  6555. Bitfields for defect list info:
  6556. Bit(s)    Description
  6557.  7-5    drive LUN
  6558.  4    defect list is available
  6559.  3    defect list is complete (erase drive's defect list)
  6560.  2-0    defect table format
  6561.     (000=use defect table A, 100=use defect table B,
  6562.      101=use defect table C)
  6563.  
  6564. Format of defect table A:
  6565. Offset    Size    Description
  6566.  00h    WORD    number of bytes remaining in table
  6567.  02h    BYTE    reserved (0)
  6568.  03h    BYTE    reserved (0)
  6569.  04h    WORD    (big-endian) defect list length (4*number of defects)
  6570.  06h  4 DWORDs    (big-endian) defect block addresses
  6571.  
  6572. Format of defect table B:
  6573. Offset    Size    Description
  6574.  00h    WORD    number of bytes remaining in table
  6575.  02h    BYTE    reserved (0)
  6576.  03h    BYTE    reserved (0)
  6577.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6578.  06h 8N BYTEs    defect list [array] (see below)
  6579.  
  6580. Format of defect table C:
  6581. Offset    Size    Description
  6582.  00h    WORD    number of bytes remaining in table
  6583.  02h    BYTE    reserved (0)
  6584.  03h    BYTE    reserved (0)
  6585.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6586.  06h 8N BYTEs    defect list [array] (see below)
  6587.  
  6588. Format of defect list entry:
  6589. Offset    Size    Description
  6590.  00h  3 BYTEs    (big-endian) cylinder number of defect
  6591.  03h    BYTE    head number of defect
  6592.  04h    DWORD    (big-endian) defect bytes from index
  6593. --------d-1306-------------------------------
  6594. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  6595.     AH = 06h
  6596. Return: AH = status code (see AH=01h)
  6597.     CF clear if successful
  6598.         AL = first drive supported
  6599.         (80h nonconcurrent operation, 81h concurrent operation)
  6600.     CF set on error
  6601. Desc:    determine the number of the first supported SCSI drive
  6602. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  6603.       only one SCSI drive is installed
  6604. SeeAlso: AH=08h
  6605. --------B-1307-------------------------------
  6606. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  6607.     AH = 07h
  6608.     AL = interleave value (XT only)
  6609.     ES:BX = 512-byte format buffer (see AH=05h)
  6610.     CH = cylinder number (bits 8,9 in high bits of CL)
  6611.     CL = sector number
  6612.     DH = head
  6613.     DL = drive
  6614. Return: AH = status code (see AH=01h)
  6615. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6616.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6617.       into bits 6 and 7 of DH
  6618. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  6619. --------d-1307-------------------------------
  6620. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  6621.     AH = 07h
  6622.     AL = interleave (0 = default, 1 = consecutive sectors,
  6623.            2 - 255 = vendor unique)
  6624.     DL = hard drive ID
  6625. Return: CF set on error
  6626.     AH = status code (see AH=01h)
  6627. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  6628. --------B-1308-------------------------------
  6629. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  6630.     AH = 08h
  6631.     DL = drive (bit 7 set for hard disk)
  6632. Return: CF set on error
  6633.         AH = status (07h) (see AH=01h)
  6634.     CF clear if successful
  6635.         AH = 00h
  6636.         BL = drive type (AT/PS2 floppies only) (see below)
  6637.         CH = low eight bits of maximum cylinder number
  6638.         CL = maximum sector number (bits 5-0)
  6639.          high two bits of maximum cylinder number (bits 7-6)
  6640.         DH = maximum head number
  6641.         DL = number of drives
  6642.         ES:DI -> drive parameter table (floppies only)
  6643. Notes:    may return successful even though specified drive is greater than the
  6644.       number of attached drives of that type (floppy/hard); check DL to
  6645.       ensure validity
  6646.     for systems predating the IBM AT, this call is only valid for hard
  6647.       disks, as it is implemented by the hard disk BIOS rather than the
  6648.       ROM BIOS
  6649.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  6650.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  6651. SeeAlso: AH=06h"Adaptec",AH=15h,INT 1E,INT 41
  6652.  
  6653. Values for drive type:
  6654.  01h    360K
  6655.  02h    1.2M
  6656.  03h    720K
  6657.  04h    1.44M
  6658.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  6659.     2.88M on some machines (at least AMI 486 BIOS)
  6660.  06h    2.88M
  6661. --------B-1309-------------------------------
  6662. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  6663.     AH = 09h
  6664.     DL = drive (80h for first, 81h for second)
  6665. Return: CF clear if successful
  6666.     CF set on error
  6667.     AH = status (see AH=01h)
  6668. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  6669.       INT 41
  6670.     on the AT and later, this function uses the parameter table pointed at
  6671.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  6672.       DL=81h
  6673. SeeAlso: INT 41,INT 46
  6674. --------B-130A-------------------------------
  6675. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  6676.     AH = 0Ah
  6677.     AL = number of sectors
  6678.     CH = low eight bits of cylinder number
  6679.     CL = sector number (bits 5-0)
  6680.          high two bits of cylinder number (bits 7-6)
  6681.     DH = head number
  6682.     DL = drive number (80h = first, 81h = second)
  6683.     ES:BX -> data buffer
  6684. Return: CF clear if successful
  6685.     CF set on error
  6686.     AH = status (see AH=01h)
  6687.     AL = number of sectors transferred
  6688. Notes:    this function reads in four to seven bytes of error-correcting code
  6689.       along with each sector's worth of information
  6690.     data errors are not automatically corrected, and the read is aborted
  6691.       after the first sector with an ECC error
  6692.     used for diagnostics only on PS/2 systems
  6693. SeeAlso: AH=02h,AH=0Bh
  6694. --------B-130B-------------------------------
  6695. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  6696.     AH = 0Bh
  6697.     AL = number of sectors
  6698.     CH = low eight bits of cylinder number
  6699.     CL = sector number (bits 5-0)
  6700.          high two bits of cylinder number (bits 7-6)
  6701.     DH = head number
  6702.     DL = drive number (80h = first, 81h = second)
  6703.     ES:BX -> data buffer
  6704. Return: CF clear if successful
  6705.     CF set on error
  6706.     AH = status (see AH=01h)
  6707.     AL = number of sectors transferred
  6708. Notes:    each sector's worth of data must be followed by four to seven bytes of
  6709.       error-correction information
  6710.     used for diagnostics only on PS/2 systems
  6711. SeeAlso: AH=03h,AH=0Ah
  6712. --------B-130C-------------------------------
  6713. INT 13 - HARD DISK - SEEK TO CYLINDER
  6714.     AH = 0Ch
  6715.     CH = low eight bits of cylinder number
  6716.     CL = sector number (bits 5-0)
  6717.          high two bits of cylinder number (bits 7-6)
  6718.     DH = head number
  6719.     DL = drive number (80h = first, 81h = second hard disk)
  6720. Return: CF set on error
  6721.     CF clear if successful
  6722.     AH = status (see AH=01h)
  6723. SeeAlso: AH=00h,AH=02h,AH=0Ah
  6724. --------d-130D-------------------------------
  6725. INT 13 - HARD DISK - RESET HARD DISKS
  6726.     AH = 0Dh
  6727.     DL = drive number (80h = first, 81h = second hard disk)
  6728. Return: CF set on error
  6729.     CF clear if successful
  6730.     AH = status (see AH=01h)
  6731. Notes:    reinitializes the hard disk controller, resets the specified drive's
  6732.       parameters, and recalibrates the drive's heads (seek to track 0)
  6733.     not for PS/2 ESDI drives
  6734. SeeAlso: AH=00h,INT 21/AH=0Dh
  6735. --------B-130E-------------------------------
  6736. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  6737.     AH = 0Eh
  6738.     DL = drive number (80h = first, 81h = second hard disk)
  6739.     ES:BX -> buffer
  6740. Return: CF set on error
  6741.     CF clear if successful
  6742.     AH = status code (see AH=01h)
  6743. Notes:    transfers controller's sector buffer.  No data is read from the drive
  6744.     used for diagnostics only on PS/2 systems
  6745. SeeAlso: AH=0Ah
  6746. --------B-130F-------------------------------
  6747. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  6748.     AH = 0Fh
  6749.     DL = drive number (80h = first, 81h = second hard disk)
  6750.     ES:BX -> buffer
  6751. Return: CF set on error
  6752.     CF clear if successful
  6753.     AH = status code (see AH=01h)
  6754. Notes:    does not write data to the drive
  6755.     should be called before formatting to initialize an XT-type
  6756.       controller's sector buffer
  6757.     used for diagnostics only on PS/2 systems
  6758. SeeAlso: AH=0Bh
  6759. --------B-1310-------------------------------
  6760. INT 13 - HARD DISK - CHECK IF DRIVE READY
  6761.     AH = 10h
  6762.     DL = drive number (80h = first, 81h = second hard disk)
  6763. Return: CF set on error
  6764.     CF clear if successful
  6765.     AH = status (see AH=01h)
  6766. --------B-1311-------------------------------
  6767. INT 13 - HARD DISK - RECALIBRATE DRIVE
  6768.     AH = 11h
  6769.     DL = drive number (80h = first, 81h = second hard disk)
  6770. Return: CF set on error
  6771.     CF clear if successful
  6772.     AH = status (see AH=01h)
  6773. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  6774. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  6775. --------B-1312-------------------------------
  6776. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  6777.     AH = 12h
  6778.     DL = drive number (80h = first, 81h = second hard disk)
  6779. Return: CF set on error
  6780.     CF clear if successful
  6781.     AH = status code (see AH=01h)
  6782. SeeAlso: AH=13h,AH=14h
  6783. --------d-1312-------------------------------
  6784. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  6785.     AH = 12h
  6786.     DL = hard drive ID
  6787. Return: CF set on error
  6788.     AH = status code (see AH=01h)
  6789. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  6790.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  6791.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  6792.       is displayed
  6793.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6794.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6795. --------B-1313-------------------------------
  6796. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  6797.     AH = 13h
  6798.     DL = drive number (80h = first, 81h = second hard disk)
  6799. Return: CF set on error
  6800.     CF clear if successful
  6801.     AH = status code (see AH=01h)
  6802. SeeAlso: AH=12h,AH=14h
  6803. --------B-1314-------------------------------
  6804. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  6805.     AH = 14h
  6806. Return: CF set on error
  6807.     CF clear if successful
  6808.     AH = status code (see AH=01h)
  6809. SeeAlso: AH=12h,AH=13h
  6810. --------B-1315-------------------------------
  6811. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  6812.     AH = 15h
  6813.     DL = drive number (bit 7 set for hard disk)
  6814. Return: CF clear if successful
  6815.         AH = type code
  6816.         00h no such drive
  6817.         01h floppy without change-line support
  6818.         02h floppy with change-line support
  6819.         03h hard disk
  6820.             CX:DX = number of 512-byte sectors
  6821.     CF set on error
  6822.         AH = status (see AH=01h)
  6823. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  6824. --------B-1316-------------------------------
  6825. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  6826.     AH = 16h
  6827.     DL = drive number
  6828. Return: CF clear if change line inactive
  6829.         AH = 00h (disk not changed)
  6830.     CF set if change line active
  6831.         AH = status
  6832.         06h change line active or not supported
  6833.         80h drive not ready or not present
  6834. Note:    call AH=15h first to determine whether the drive supports a change
  6835.       line
  6836. SeeAlso: AH=15h
  6837. --------B-1317-------------------------------
  6838. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  6839.     AH = 17h
  6840.     AL = format type
  6841.         01h = 320/360K disk in 360K drive
  6842.         02h = 320/360K disk in 1.2M drive
  6843.         03h = 1.2M disk in 1.2M drive
  6844.         04h = 720K disk in 720K or 1.44M drive
  6845.     DL = drive number
  6846. Return: CF set on error
  6847.     CF clear if successful
  6848.     AH = status (see AH=01h)
  6849. Note:    this function does not handle 1.44M drives; use AH=18h instead
  6850. SeeAlso: AH=15h,AH=18h
  6851. --------d-131700-----------------------------
  6852. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  6853.     AX = 1700h
  6854.     CL = length of buffer
  6855.     DL = hard drive ID
  6856.     ES:BX -> buffer for info
  6857. Return: CF clear if successful
  6858.         CH = number of bytes returned in buffer???
  6859.     CF set on error
  6860.         AH = status code (see AH=01h)
  6861. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  6862.     information block bytes 5-n are vendor-specific in older SCSI devices
  6863.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6864.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6865. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  6866.  
  6867. Format of SCSI inquiry information block:
  6868. Offset    Size    Description
  6869.  00h    BYTE    device type
  6870.         bits 0-4: peripheral device type (see below)
  6871.         bits 5-7: peripheral qualifier (see below)
  6872.  01h    BYTE    device type modifier
  6873.         bits 0-6: device type modifier
  6874.         bit 7: removable medium
  6875.  02h    BYTE    SCSI version (see below)
  6876.  03h    BYTE    data format/capabilities (see below)
  6877.  04h    BYTE    additional data length (total remaining bytes)
  6878.  05h  2 BYTEs    reserved
  6879.  07h    BYTE    device capabilities (see below)
  6880.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  6881.  10h  8 BYTEs    product identification (space-padded ASCII)
  6882.  20h  4 BYTEs    product revision level (space-padded ASCII)
  6883.  24h 20 BYTEs    vendor specific
  6884.  38h 40 BYTEs    reserved
  6885.  60h    var    vendor specific parameters
  6886.  
  6887. Values for peripheral device type:
  6888.  00h    direct-access device (e.g., magnetic disk)
  6889.  01h    sequential-access device (e.g., magnetic tape)
  6890.  02h    printer device
  6891.  03h    processor device
  6892.  04h    write-once device (e.g., some optical disks)
  6893.  05h    CD-ROM device
  6894.  06h    scanner device
  6895.  07h    optical memory device (e.g., some optical disks)
  6896.  08h    medium changer device (e.g., jukeboxes)
  6897.  09h    communications device
  6898.  0Ah    (defined by ASC IT8)
  6899.  0Bh    (defined by ASC IT8)
  6900.  0Ch-1Eh reserved
  6901.  1Fh    unknown or no device type
  6902.  
  6903. Values for peripheral qualifier:
  6904.  000b    device is currently connected to this logical unit and available
  6905.  001b    target is capable of supporting the specified peripheral, but the
  6906.       physical device is not currently connected to this logical unit
  6907.  010b    reserved
  6908.  011b    target can't support a physical device on this logical unit
  6909.  1xxb    vendor specific
  6910.  
  6911. Bitfields for SCSI version:
  6912. Bit(s)    Description
  6913.  0-2    ANSI-approved version
  6914.     000 device might or might not comply to ANSI standard
  6915.     001 device complies to ANSI SCSI-1
  6916.     010 device complies to ANSI SCSI-2
  6917.     other reserved
  6918.  3-5    ECMA version
  6919.  6-7    ISO version
  6920.  
  6921. Bitfields for data format/capabilities:
  6922. Bit(s)    Description
  6923.  0-2    response data format
  6924.     000 information block is as specified in SCSI-1
  6925.     001 information block is as specified in CCS
  6926.     010 information block is as specified in SCSI-2
  6927.     other reserved
  6928.  4-5    reserved
  6929.  6    terminate I/O process supported
  6930.  7    asynchronous event notification supported
  6931.  
  6932. Bitfields for device capabilities:
  6933. Bit(s)    Description
  6934.  0    device responds to RESET with a hard RESET
  6935.  1    tagged command queuing supported
  6936.  2    reserved
  6937.  3    linked commands supported
  6938.  4    synchronous data transfer supported
  6939.  5    16-transfers supported
  6940.  6    32-transfers supported
  6941.  7    relative addressing supported
  6942. --------B-1318-------------------------------
  6943. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  6944.     AH = 18h
  6945.     DL = drive number
  6946.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  6947.     CL = sectors per track (bits 0-5)
  6948.          top 2 bits of highest cylinder number (bits 6,7)
  6949. Return: AH = status
  6950.         00h requested combination supported
  6951.         01h function not available
  6952.         0Ch not supported or drive type unknown
  6953.         80h there is no disk in the drive
  6954.     ES:DI -> 11-byte parameter table
  6955. SeeAlso: AH=05h,AH=07h,AH=17h
  6956. --------d-1318-------------------------------
  6957. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  6958.     AH = 18h
  6959.     DL = hard drive ID
  6960. Return: CF set on error
  6961.         AH = status code (see AH=01h)
  6962.     CF clear if successful
  6963.         AX = 4321h (magic number)
  6964.         CX = controller family code (see below)
  6965.         ---if family code=0200h
  6966.         DH = number of exclusively ROM-controlled SCSI devices
  6967.         DL = canonical SCSI device number for specified drive
  6968.         ---if family code <> 0200h
  6969.         BH = number of exclusively ROM-controlled SCSI devices
  6970.         BL = canonical SCSI device number for specified drive
  6971. Notes:    also sets an internal flag (non-resettable) which prevents some
  6972.       controller messages from being displayed, allows writes to
  6973.       removable devices (use caution!), and enables the INT 13 interface
  6974.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  6975.       versions
  6976.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6977.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6978. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  6979.  
  6980. Values for controller family code:
  6981.  0200h    TMC-1680/? (ROM 3.0)
  6982.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  6983.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  6984.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  6985.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  6986. --------B-1319-------------------------------
  6987. INT 13 - FIXED DISK - PARK HEADS (XT286,PS)
  6988.     AH = 19h
  6989.     DL = drive
  6990. Return: CF set on error
  6991.     AH = status (see AH=01h)
  6992. SeeAlso: AH=11h
  6993. --------d-1319-------------------------------
  6994. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  6995.     AH = 19h
  6996.     DL = hard drive ID
  6997. Return: CF set on error
  6998.         AH = status code (see AH=01h)
  6999.     CF clear if successful
  7000.         AH = disk type (03h = fixed disk)
  7001.         CX:DX = number of 512-byte sectors
  7002. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  7003.       adjusts the result for 512-byte sectors
  7004.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  7005.       sector" (nnn=256 or 512, the only sizes supported in the translation
  7006.       code)
  7007.     should probably be called when a removable device has its media changed
  7008.     returns the same values as AH=15h
  7009.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7010.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7011. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  7012. --------d-131A-------------------------------
  7013. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  7014.     AH = 1Ah
  7015.     AL = defect table count
  7016.     CL = format modifiers (see below)
  7017.     DL = drive
  7018.     ES:BX -> defect table
  7019. Return: CF set on error
  7020.     AH = status (see AH=01h)
  7021. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  7022.       cylinder is formatted
  7023. SeeAlso: AH=07h,INT 15/AH=0Fh
  7024.  
  7025. Bitfields for format modifiers:
  7026. Bit(s)    Description
  7027.  4    generate periodic interrupt
  7028.  3    perform surface analysis
  7029.  2    update secondary defect map
  7030.  1    ignore secondary defect map
  7031.  0    ignore primary defect map
  7032. --------d-131A-------------------------------
  7033. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  7034.     AH = 1Ah
  7035.     CH = track (bits 8,9 in high bits of CL)
  7036.     CL = sector (01h to number of sectors/track for drive)
  7037.     DH = head
  7038.     DL = hard drive ID
  7039. Return: CF set on error
  7040.     AH = status code (see AH=01h)
  7041.     CX:DX = logical block number of last quickly-accessible block after
  7042.         given block
  7043. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  7044.       logical block address of the last block after which a substantial
  7045.       delay in data transfer will be encountered (usually the last block
  7046.       on the current cylinder).  No translation to 512 byte sectors is
  7047.       performed on the result if data is stored on the disk in other than
  7048.       512 byte sectors.
  7049.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7050.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7051. SeeAlso: AH=15h,AH=19h"SCSI"
  7052. --------d-131B-------------------------------
  7053. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  7054.     AH = 1Bh
  7055.     AL = number of record
  7056.     DL = drive
  7057.     ES:BX -> buffer for manufacturing header (defect list)
  7058. Return: CF set on error
  7059.         AH = status
  7060. Note:    manufacturing header format (Defect Map Record format) can be found
  7061.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  7062. --------d-131B-------------------------------
  7063. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  7064.     AH = 1Bh
  7065.     DL = hard drive ID
  7066. Return: CF set on error
  7067.         AH = status code (see AH=01h)
  7068.     CF clear if successful
  7069.         ES:BX -> SCSI disk information block
  7070. Notes:    also sets a non-resettable flag which prevents some controller messages
  7071.       from being displayed
  7072.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7073.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7074. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  7075.  
  7076. Format of SCSI disk information block:
  7077. Offset    Size    Description
  7078.  00h    BYTE    drive physical information (see below)
  7079.  01h    WORD    translated number of cylinders
  7080.  03h    BYTE    translated number of heads
  7081.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  7082.  05h    BYTE    drive address
  7083.         bits 0-2: logical unit number
  7084.         bits 3-5: device number
  7085.  06h    BYTE    01h at initialization
  7086.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  7087.  08h    BYTE    00h
  7088.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  7089.  0Ah    BYTE    00h
  7090.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  7091.  15h    DWORD    translated number of sectors on device
  7092.  
  7093. Bitfields for device physical information:
  7094. Bit(s)    Description
  7095.  0    ???
  7096.  1    device uses parity
  7097.  2    256 bytes per sector instead of 512
  7098.  3    don't have capacity yet???
  7099.  4    disk is removable
  7100.  5    logical unit number is not present
  7101. --------d-131C-------------------------------
  7102. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  7103.     AH = 1Ch
  7104.     DL = hard drive ID (any valid SCSI hard disk)
  7105. Return: CF set on error
  7106.         AH = status code (see AH=01h)
  7107.     CF clear if successful
  7108.         ES:BX -> first byte of free RAM on controller
  7109. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  7110.       to 1BFFh on-board the controller for storing drive information and
  7111.       controller status; ES:BX points to the first byte available for other
  7112.       uses
  7113.     ES contains the segment at which the controller resides; the
  7114.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  7115. SeeAlso: AH=1Bh"SCSI"
  7116. --------d-131C0A-----------------------------
  7117. INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  7118.     AX = 1C0Ah
  7119.     DL = drive
  7120.     ES:BX -> buffer for device configuration (drive physical parameter)
  7121. Return: CF set on error
  7122.         AH = status
  7123. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  7124.       Adapter/A Technical Reference
  7125. --------d-131C0B-----------------------------
  7126. INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  7127.     AX = 1C0Bh
  7128.     ES:BX -> buffer for adapter configuration
  7129. Return: CF set on error
  7130.         AH = status
  7131. SeeAlso: AX=1C0Ch
  7132. --------d-131C0C-----------------------------
  7133. INT 13 - ESDI FIXED DISK - GET POS INFORMATION
  7134.     AX = 1C0Ch
  7135.     ES:BX -> POS information
  7136. Return: CF set on error
  7137.         AH = status
  7138. SeeAlso: AX=1C0Bh
  7139. --------d-131C0E-----------------------------
  7140. INT 13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  7141.     AX = 1C0Eh
  7142.     CH = low 8 bits of cylinder number
  7143.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  7144.     DH = head number
  7145.     DL = drive number
  7146.     ES:BX -> ABA number
  7147. Return: CF set on error
  7148.         AH = status
  7149. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  7150.       Technical Reference by using its Device Configuration Status Block
  7151. --------c-131D-------------------------------
  7152. INT 13 - IBMCACHE.SYS - CACHE STATUS
  7153.     AH = 1Dh
  7154.     AL = subfunction
  7155.         01h get status record
  7156.         DL = drive???
  7157.         Return: ES:BX -> status record (see below)
  7158.             CF set on error
  7159.                 AH = error code
  7160.         02h set cache status
  7161.         ES:BX -> status record (see below)
  7162.         DL = drive???
  7163.         Return: CF set on error
  7164.  
  7165. Format of status record:
  7166. Offset    Size    Description
  7167.  00h    DWORD    total number of read requests
  7168.  04h    DWORD    total number of hits
  7169.  08h    DWORD    number of physical disk reads
  7170.  0Ch    DWORD    total number of sectors requested by physical disk reads
  7171.  10h  6 bytes    ???
  7172.  16h    DWORD    pointer to start of error list
  7173.  1Ah    DWORD    pointer to end of error list
  7174.  1Eh    WORD    ???
  7175.  20h    BYTE    using extended memory if nonzero
  7176.  21h    BYTE    ???
  7177.  22h  4 BYTEs    ASCII version number
  7178.  26h    WORD    cache size in KB
  7179.  28h    WORD    sectors per page
  7180.  
  7181. Format of error list:
  7182. Offset    Size    Description
  7183.  00h    DWORD    relative block address of bad page
  7184.  04h    BYTE    drive
  7185.  05h    BYTE    sector bit-map
  7186.  06h    WORD    next error
  7187. --------d-1320-------------------------------
  7188. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  7189.     AH = 20h
  7190.     ???
  7191. Return: ???
  7192. Notes:    returns some kind of status related to whether the drive contains its
  7193.       default media type
  7194.     QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
  7195. --------b-1320-------------------------------
  7196. INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
  7197.     AH = 20h
  7198.     DL = drive number (00h,01h)
  7199. Return: CF clear if successful
  7200.         AL = media type (see below)
  7201.     CF set on error
  7202.         AH = error code
  7203.         31h no such drive
  7204.         32h incorrect drive type stored in CMOS
  7205. Note:    this function is supported by the 3/8/93 ROM BIOS, but only partially
  7206.       (AL is always 00h when successful) by the 8/3/93 version
  7207.  
  7208. Values for media type:
  7209.  03h    720K
  7210.  04h    1.44M
  7211.  06h    2.88M
  7212.  0Ch    360K
  7213.  0Dh    1.2M
  7214.  0Eh    ???
  7215.  0Fh    ??? (1024-byte sectors)
  7216. --------c-1320-------------------------------
  7217. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  7218.     AH = 20h
  7219.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  7220.                    or FFh for all drives)
  7221. Return: AX = status (0000h successful)
  7222. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7223.       Associates, Inc.
  7224. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  7225.       those sector buffers
  7226. SeeAlso: AH=21h,AH=22h,AH=28h
  7227. --------c-1321-------------------------------
  7228. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  7229.     AH = 21h
  7230. Return: AX = status (0000h successful)
  7231. Desc:    immediately write all dirty sectors back to disk
  7232. SeeAlso: AH=25h,AH=2Eh,AH=2Fh
  7233. --------c-1322-------------------------------
  7234. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  7235.     AH = 22h
  7236.     AL = new state (00h disabled, 01h enabled)
  7237. Return: AX = status (0000h successful)
  7238. Note:    enables/disables caching of all drives
  7239. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  7240. --------c-1323-------------------------------
  7241. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  7242.     AH = 23h
  7243. Return: AX = status (0000h successful)
  7244.     ES = segment of ??? data
  7245. --------c-1324-------------------------------
  7246. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  7247.     AH = 24h
  7248.     BX = new number of sector buffers in cache
  7249. Return: AX = status
  7250.         0000h successful
  7251.         0001h failed--size adjusted
  7252.         8000h cache cannot be resized while enabled
  7253. SeeAlso: AH=36h
  7254. --------c-1325-------------------------------
  7255. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  7256.     AH = 25h
  7257.     BX = interval
  7258. Return: AX = status (0000h successful)
  7259. Desc:    specify how often the cache should write dirty buffers to disk when
  7260.       buffered writes are enabled
  7261. SeeAlso: AH=21h,AH=2Ch,AH=2Eh
  7262. --------c-1326-------------------------------
  7263. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  7264.     AH = 26h
  7265. Return: AX = status
  7266.         0000h successful
  7267.         0001h-00FFh interrupt vector which was hooked by another TSR
  7268. SeeAlso: AH=27h
  7269. --------c-1327--BX0000-----------------------
  7270. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  7271.     AH = 27h
  7272.     BX = 0000h
  7273. Return: AX = 0000h if installed
  7274.     BX nonzero if installed
  7275.         BH = major version
  7276.         BL = binary minor version
  7277. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7278.       Associates, Inc.
  7279. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  7280. --------c-1328-------------------------------
  7281. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  7282.     AH = 28h
  7283.     AL = new state (00h disabled, 01h enabled)
  7284. Return: AX = status (0000h successful)
  7285. SeeAlso: AH=20h"QUICKCACHE"
  7286. --------c-1329-------------------------------
  7287. INT 13 U - QUICKCACHE II v4.20 - NOP
  7288.     AH = 29h
  7289. Return: AX = 0000h
  7290. --------c-132A-------------------------------
  7291. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  7292.     AH = 2Ah
  7293.     AL = buffer size (1-30)
  7294. Return: AX = status (0000h successful)
  7295. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  7296.       and write operations
  7297. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  7298. --------c-132B-------------------------------
  7299. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  7300.     AH = 2Bh
  7301.     AL = new state (00h disabled, 01h enabled)
  7302. Return: AX = status (0000h successful)
  7303. --------c-132C-------------------------------
  7304. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  7305.     AH = 2Ch
  7306.     AL = new state (00h disabled, 01h enabled)
  7307. Return: AX = status (0000h successful)
  7308. Desc:    specify whether the cache should delay disk writes
  7309. Note:    this function enables or disables delayed writes for all drives; use
  7310.       AH=38h to change a single drive
  7311. SeeAlso: AH=25h,AH=2Dh,AH=2Eh,AH=38h
  7312. --------c-132D-------------------------------
  7313. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  7314.     AH = 2Dh
  7315.     AL = new state (00h disabled, 01h enabled)
  7316. Return: AX = status (0000h successful)
  7317. Desc:    specify whether the cache should attempt to read ahead of actual
  7318.       requests
  7319. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  7320.       to change a single drive
  7321. SeeAlso: AH=2Ch,AH=37h
  7322. --------c-132E-------------------------------
  7323. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  7324.     AH = 2Eh
  7325.     BX = flush count
  7326. Return: AX = status (0000h successful)
  7327. Desc:    specify how many dirty sectors the cache should write after each flush
  7328.       interval (see AH=25h) when buffered writes are enabled
  7329. SeeAlso: AH=21h,AH=25h,AH=2Ch
  7330. --------c-132F-------------------------------
  7331. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  7332.     AH = 2Fh
  7333. Return: AX = status (0000h successful)
  7334. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  7335.       flush interval had expired
  7336. SeeAlso: AH=21h
  7337. --------c-1330-------------------------------
  7338. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  7339.     AH = 30h
  7340.     AL = what to get
  7341.         00h system info (see below)
  7342.         01h drive info (see below)
  7343.         02h access frequency (array of 30 words)
  7344.         03h drive index
  7345.         (array of 32 bytes indicating BIOS drive for DOS drive)
  7346.     DS:DX -> buffer for info
  7347. Return: AX = status (0000h successful, 8000h invalid info specifier)
  7348. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7349.       Associates, Inc.
  7350.  
  7351. Format of system info:
  7352. Offset    Size    Description
  7353.  00h    BYTE    flag: cache enabled
  7354.  01h    BYTE    flag: buffered writes enabled
  7355.  02h    BYTE    flag: buffered reads enabled
  7356.  03h    BYTE    flag: sounds enabled
  7357.  04h    BYTE    flag: autodismount enabled
  7358.  05h    BYTE    ???
  7359.  06h    BYTE    flag: ???
  7360.  07h    BYTE    flag: ???
  7361.  08h    BYTE    flag: "em_assigned"
  7362.  09h    BYTE    flag: emulated EMS
  7363.  0Ah    BYTE    single sector bonus
  7364.  0Bh    BYTE    "sticky_max"
  7365.  0Ch    BYTE    write sector bonus
  7366.  0Dh    BYTE    bonus threshold
  7367.  0Eh    WORD    flush interval
  7368.  10h    WORD    flush count
  7369.  12h    WORD    reserve pool size
  7370.  14h    WORD    remaining space in reserve pool
  7371.  16h    WORD    required free memory
  7372.  18h    WORD    total cache sectors
  7373.  1Ah    WORD    dirty cache sectors
  7374.  1Ch    BYTE    trace buffer size
  7375.  1Dh    BYTE    reserved (padding)
  7376.  
  7377. Format of drive info [16-element array, one element]:
  7378. Offset    Size    Description
  7379.  00h    BYTE    DOS drive number
  7380.  01h    BYTE    BIOS drive number
  7381.  02h    BYTE    maximum sector number
  7382.  03h    BYTE    maximum head number
  7383.  04h    BYTE    read buffer size
  7384.  05h    BYTE    write buffer size
  7385.  06h    BYTE    last status
  7386.  07h    BYTE    flag: enabled
  7387.  08h    BYTE    flag: buffered write enabled
  7388.  09h    BYTE    flag: buffered read enabled
  7389.  0Ah    BYTE    flag: in use (drive info is valid)
  7390.  0Bh    BYTE    flag: cylinder flush
  7391.  0Ch    BYTE    reserved (padding)
  7392.  0Dh    BYTE    sectors per track
  7393.  0Eh    WORD    sector size
  7394.  10h    WORD    sectors assigned
  7395.  12h    WORD    dirty sectors
  7396.  14h    WORD    reserved sectors
  7397.  16h    WORD    number of read errors
  7398.  18h    WORD    number of write errors
  7399.  1Ah    DWORD    "rio_count"
  7400.  1Eh    DWORD    number of cache misses
  7401.  22h    DWORD    "wio_count"
  7402.  26h    DWORD    "dio_count"
  7403. --------c-1331-------------------------------
  7404. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  7405.     AH = 31h
  7406.     BX = number of paragraphs of conventional memory to reserve for apps
  7407. Return: AX = status (0000h successful)
  7408. --------c-1332-------------------------------
  7409. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  7410.     AH = 32h
  7411.     AL = drive number (00h=A:)
  7412. Return: AX = status (0000h successful)
  7413. SeeAlso: AH=22h,AH=33h
  7414. --------c-1333-------------------------------
  7415. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  7416.     AH = 33h
  7417.     AL = drive number (00h=A:)
  7418. Return: AX = status (0000h successful)
  7419. SeeAlso: AH=22h,AH=32h
  7420. --------c-1334-------------------------------
  7421. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  7422.     AH = 34h
  7423.     AL = function
  7424.         00h end sector locking/unlocking
  7425.         01h lock all accessed sectors into cache
  7426.         02h unlock all accessed sectors and discard from cache
  7427. Return: AX = status (0000h successful)
  7428. SeeAlso: AH=20h,AH=35h
  7429. --------c-1335-------------------------------
  7430. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  7431.     AH = 35h
  7432.     BX = number of sectors in lock pool
  7433. Return: AX = status (0000h successful)
  7434. Desc:    specify the number of cache sector buffers which may be dedicated to
  7435.       data locked into the cache
  7436. SeeAlso: AH=34h
  7437. --------c-1336-------------------------------
  7438. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  7439.     AH = 36h
  7440.     AL = new size of trace buffer
  7441. Return: AX = status (0000h successful)
  7442. Note:    called with AL=05h during an INT 13/AH=24h call
  7443. SeeAlso: AH=24h
  7444. --------c-1337-------------------------------
  7445. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  7446.     AH = 37h
  7447.     AL = new state (00h disabled, else enabled)
  7448.     DL = drive number (00h = A:)
  7449. Return: AX = status (0000h successful)
  7450. SeeAlso: AH=2Dh,AH=38h
  7451. --------c-1338-------------------------------
  7452. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  7453.     AH = 38h
  7454.     AL = new state (00h disabled, else enabled)
  7455.     DL = drive number (00h = A:)
  7456. Return: AX = status (0000h successful)
  7457. SeeAlso: AH=2Ch,AH=37h
  7458. --------c-1339-------------------------------
  7459. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  7460.     AH = 39h
  7461.     AL = new size of read buffer
  7462.     DL = drive number (00h = A:)
  7463. Return: AX = status (0000h successful)
  7464. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7465.       Associates, Inc.
  7466. SeeAlso: AH=2Ah,AH=3Ah
  7467. --------c-133A-------------------------------
  7468. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  7469.     AH = 3Ah
  7470.     AL = new size of write buffer
  7471.     DL = drive number (00h = A:)
  7472. Return: AX = status (0000h successful)
  7473. SeeAlso: AH=2Ah,AH=39h
  7474. --------c-133B-------------------------------
  7475. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  7476.     AH = 3Bh
  7477.     AL = new state of ??? (01h enabled, else disabled)
  7478. Return: AX = status (0000h successful)
  7479. Note:    is affected by the flag reported at offset 05h of the system info
  7480.       returned by AH=30h, and sets the flag at offset 06h
  7481. SeeAlso: AH=3Ch
  7482. --------c-133C-------------------------------
  7483. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  7484.     AH = 3Ch
  7485.     AL = new state of ??? (01h enabled, else disabled)
  7486. Return: AX = status (0000h successful)
  7487. Note:    is affected by the flag reported at offset 05h of the system info
  7488.       returned by AH=30h, and sets the flag at offset 07h
  7489. SeeAlso: AH=3Bh
  7490. --------c-133D-------------------------------
  7491. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  7492.     AH = 3Dh
  7493.     AL = new state (01h enabled, else disabled)
  7494.     DL = drive number (00h = A:)
  7495. Return: AX = status (0000h successful)
  7496. --------c-133E-------------------------------
  7497. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  7498.     AH = 3Eh
  7499.     AL = new value for bonus
  7500. Return: AX = status (0000h successful)
  7501. Desc:    specify the bonus score to give to single-sector transfers in order to
  7502.       keep those sectors in the cache longer
  7503. --------c-133F-------------------------------
  7504. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  7505.     AH = 3Fh
  7506.     AL = new value for bonus threshold
  7507. Return: AX = status (0000h successful)
  7508. --------c-1340-------------------------------
  7509. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  7510.     AH = 40h
  7511.     AL = new value for "sticky_max"
  7512. Return: AX = status (0000h successful)
  7513. --------c-1341-------------------------------
  7514. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  7515.     AH = 41h
  7516.     AL = direction
  7517.         01h save to file
  7518.         else restore from file
  7519.     ES:DI -> 1024-byte buffer for ???
  7520. Return: AX = status (0000h successful, 8000h failed)
  7521. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7522.       Associates, Inc.
  7523. --------N-134257DX1234-----------------------
  7524. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  7525.     AX = 4257h ("BW")
  7526.     DX = 1234h
  7527. Return: BX = 414Ch if installed
  7528. Program: BWLPD is the printer daemon from the BW-NFS package
  7529. SeeAlso: INT 62/AH=00h"ETHDEV"
  7530. --------v-135342CX0001-----------------------
  7531. INT 13 - ScanBoot - INSTALLATION CHECK
  7532.     AX = 5342h ("SB")
  7533.     CX = 0001h
  7534.     DX = 0000h
  7535. Return: CF clear if ScanBoot installed
  7536.        AX = 0000h
  7537.        CX = serial number ("SW" if shareware release)
  7538.        DX = version
  7539.        BX,SI,ES destroyed
  7540. Program: ScanBoot is a virus-detection TSR by PanSoft
  7541. --------d-135504-----------------------------
  7542. INT 13 - Seagate - GET CONTROLLER TYPE???
  7543.     AX = 5504h
  7544.     DX = drive (bit 7 set for hard disk)
  7545. Return: CF clear if successful
  7546.         AX = 4321h,4322h if Seagate controller
  7547.     CF set on error
  7548. SeeAlso: AX=5505h,AX=5514h
  7549. --------d-135505-----------------------------
  7550. INT 13 - Seagate - PARK HEADS???
  7551.     AX = 5505h
  7552.     DX = drive (bit 7 set for hard disk)
  7553. Return: CF clear if successful
  7554.     CF set on error
  7555. SeeAlso: AX=5504h,AX=5515h
  7556. --------d-135514-----------------------------
  7557. INT 13 - Seagate - ???
  7558.     AX = 5514h
  7559.     DX = drive (bit 7 set for hard disk)
  7560. Return: CF clear if successful
  7561.     CF set on error
  7562.     AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  7563. SeeAlso: AX=5504h,AX=5515h
  7564. --------d-135515-----------------------------
  7565. INT 13 - Seagate - PARK HEADS???
  7566.     AX = 5515h
  7567.     DX = drive (bit 7 set for hard disk)
  7568. Return: CF clear if successful
  7569.     CF set on error
  7570. Note:    appears to be identical to AX=5505h
  7571. SeeAlso: AX=5504h,AX=5505h
  7572. --------d-1370-------------------------------
  7573. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  7574.     AH = 70h
  7575.     ???
  7576. Return: ???
  7577. Note:    Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  7578.       formatting program) make this call, presumably to EDVR.SYS (the
  7579.       partitioning driver)
  7580. SeeAlso: AH=ADh
  7581. ----------1375-------------------------------
  7582. INT 13 - ???
  7583.     AH = 75h
  7584.     ???
  7585. Return: AH = ???
  7586.     ???
  7587. Note:    intercepted by PC-Cache (v5.1 only)
  7588. ----------1376-------------------------------
  7589. INT 13 - ???
  7590.     AH = 76h
  7591.     ???
  7592. Return: AH = ???
  7593.     ???
  7594. Note:    intercepted by PC-Cache (v5.1 only)
  7595. --------c-137B00-----------------------------
  7596. INT 13 - NOW! v3.05 - GET INFORMATION
  7597.     AX = 7B00h
  7598.     CX:DX -> 1F8h-byte buffer for information record (see below)
  7599. Return: AX = 0000h
  7600.     BX = segment of main resident code
  7601.     ES = ???
  7602. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  7603. SeeAlso: AX=7B02h,AH=EFh
  7604.  
  7605. Format of information record:
  7606. Offset    Size    Description
  7607.  00h 80 BYTEs    name of directory from which NOW! was started
  7608.  50h 424 BYTEs    ???
  7609.  81h  ? BYTEs    array of bytes for ???
  7610.  F7h 250 BYTEs    array of 25 entries, one per drive???
  7611.     Offset    Size    Description
  7612.      00h  2 BYTEs    ???
  7613.      02h    WORD    ???
  7614.      04h    WORD    ???
  7615.      06h  4 BYTEs    ???
  7616. 1F1h  7 BYTEs    ???
  7617. --------c-137B01-----------------------------
  7618. INT 13 - NOW! v3.05 - ???
  7619.     AX = 7B01h
  7620. Return: DX = segment of ???
  7621. SeeAlso: AX=7B00h
  7622. --------c-137B02-----------------------------
  7623. INT 13 - NOW! v3.05 - SET INFORMATION
  7624.     AX = 7B02h
  7625.     BX = segment of ??? (10h above a PSP)
  7626.     CX:DX -> 1F8h-byte information record (see AX=7B00h)
  7627. Return: ???
  7628. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  7629. Note:    NOW! grabs the INT 24h value from the PSP reached via the segment in
  7630.       BX
  7631. SeeAlso: AX=7B00h
  7632. --------c-137B03-----------------------------
  7633. INT 13 - NOW! v3.05 - ???
  7634.     AX = 7B03h
  7635.     ???
  7636. Return: ???
  7637. SeeAlso: AX=7B00h,AX=7B04h
  7638. --------c-137B04-----------------------------
  7639. INT 13 - NOW! v3.05 - ???
  7640.     AX = 7B04h
  7641.     ???
  7642. Return: ???
  7643. SeeAlso: AX=7B03h
  7644. --------c-137B05-----------------------------
  7645. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  7646.     AX = 7B05h
  7647. Return: BX:AX = number of physical accesses???
  7648.     DX:CX = total disk accesses???
  7649. SeeAlso: AX=7B00h,AX=7B06h
  7650. --------c-137B06-----------------------------
  7651. INT 13 - NOW! v3.05 - GET ???
  7652.     AX = 7B06h
  7653.     BX = ???
  7654. Return: AX = 0000h
  7655.     BX = ???
  7656. SeeAlso: AX=7B05h,AX=7B07h
  7657. --------c-137B07-----------------------------
  7658. INT 13 - NOW! v3.05 - GET ???
  7659.     AX = 7B07h
  7660. Return: AX = ???
  7661.     BX = ???
  7662.     CX = ???
  7663.     DX = ???
  7664. SeeAlso: AX=7B06h
  7665. --------c-137B08-----------------------------
  7666. INT 13 - NOW! v3.05 - ???
  7667.     AX = 7B08h
  7668.     CX = ??? (default 00h)
  7669. Return: ???
  7670. SeeAlso: AX=7B00h
  7671. --------c-1380--CX6572-----------------------
  7672. INT 13 - FAST! v4.02+ - API
  7673.     AH = 80h
  7674.     CX = 6572h
  7675.     DX = 1970h
  7676.     ES:BX -> request packet (see below)
  7677.     AL = function
  7678.         01h get cache information (see separate entry)
  7679.         04h disable cache
  7680.         05h enable cache and reset statistics
  7681.         06h installation check (see separate entry)
  7682.         07h unhook interrupts (see separate entry)
  7683.         09h flush cache
  7684.         0Ah (v4.02+) enable staged writes
  7685.         0Bh (v4.02+) disable staged writes
  7686.         0Ch (v4.02+) enable beep on flush
  7687.         0Dh (v4.02+) disable beep on flush
  7688.         0Eh ???
  7689.         0Fh ???
  7690.         10h (v4.12+) enable hotkeys
  7691.         11h (v4.12+) disable hotkeys
  7692.         12h (v4.13+) set idle delay
  7693.         13h (v4.13+) set flush dirty percentage
  7694.         14h (v5.00+) enable mouse checks
  7695.         15h (v5.00+) disable mouse checks
  7696.         16h (v5.00d+) reduce cache size to minimum
  7697.         17h (v5.00d+) increase cache size to maximum
  7698. Return: AH = status (except function 06h)
  7699.         00h if successful
  7700.         01h invalid function
  7701.         05h not supported by the installed variant
  7702.     CF clear if successful
  7703.     CF set on error
  7704.     AL may be destroyed
  7705. Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC
  7706.       Publishing Corp.
  7707. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  7708. Index:    hotkeys;FAST!
  7709.  
  7710. Format of request packet:
  7711. Offset    Size    Description
  7712.  00h    DWORD    pointer to 19-byte signature string (see below)
  7713.  04h    DWORD    pointer to buffer for data (if needed by function)
  7714.  
  7715. Values for v4.04-v5.03 signature string:
  7716.  13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  7717. --------c-138001CX6572-----------------------
  7718. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  7719.     AX = 8001h
  7720.     CX = 6572h
  7721.     DX = 1970h
  7722.     ES:BX -> request packet (see below)
  7723. Return: AH = 00h if successful
  7724. SeeAlso: AH=80h,AX=8006h
  7725.  
  7726. Format of request packet:
  7727. Offset    Size    Description
  7728.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7729.  04h    DWORD    -> buffer for cache information (see below)
  7730.  
  7731. Format of cache information (v5.00-5.03):
  7732. Offset    Size    Description
  7733.  00h    WORD    binary version number of FAST! (v5.00 = 01F4h)
  7734.  02h    BYTE    revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  7735.  03h    BYTE    FAST! variant
  7736.         (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  7737.  04h    DWORD    total number of read requests
  7738.  08h    DWORD    number of physical disk reads
  7739.  0Ch    DWORD    grabbed hash buckets
  7740.  10h    DWORD    "st_386mem"
  7741.  14h    DWORD    total number of writes (only counted when staging enabled)
  7742.  18h    DWORD    number of physical disk writes (only when staging enabled)
  7743.  1Ch    DWORD    number of write errors while flushing cache
  7744.  20h    WORD    flags1 (see below)
  7745.  22h    WORD    flags
  7746.         bit 0: ???
  7747.         bit 1: staged writes enabled
  7748.  24h    WORD    ???
  7749.  26h    WORD    maximum cache size in KB
  7750.  28h    WORD    minimum cache size in KB
  7751.  2Ah    WORD    segment of first cache buffer (FASTC)
  7752.         segment of EMS page frame (FASTE)
  7753.         XMS handle (FASTX XMS)
  7754.  2Ch    WORD    number of hash buckets containing no entries
  7755.  2Eh    WORD    number of hash buckets containing one entry
  7756.  30h    WORD    number of hash buckets containing two entries
  7757.  32h    WORD    number of hash buckets containing three entries
  7758.  34h    WORD    number of hash buckets containing four entries
  7759.  36h    WORD    number of hash buckets containing five entries
  7760.  38h    WORD    maximum contiguous sectors
  7761.  3Ah    WORD    hash factor
  7762.  3Ch    WORD    number of paragraphs of memory used below 1M
  7763.  3Eh    WORD    entries per hash bucket
  7764.  40h    WORD    idle delay in seconds
  7765.  42h  2 BYTEs    ???
  7766.  44h    WORD    staged write threshold percentage
  7767.  46h  2 BYTEs    ???
  7768.  48h    WORD    number of dirty sectors
  7769.  4Ah    WORD    number of staged write buffers
  7770.  4Ch    WORD    current cache size in KB
  7771.  4Eh    WORD    beep frequency in Hz
  7772.  50h    WORD    ???
  7773.  52h    WORD    ???
  7774.  
  7775. Bitfields for flags1:
  7776. Bit(s)    Description
  7777.  0    beep on flush
  7778.  3    hotkeys enabled
  7779.  4    mouse idle check enabled
  7780.  8    caching enabled
  7781.  13    ???
  7782. --------c-138006CX6572-----------------------
  7783. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  7784.     AX = 8006h
  7785.     CX = 6572h
  7786.     DX = 1970h
  7787.     ES:BX -> request packet (see below)
  7788. Return: AX = 1965h if installed
  7789. SeeAlso: AH=80h,AX=8001h,AX=8007h
  7790.  
  7791. Format of request packet:
  7792. Offset    Size    Description
  7793.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7794. --------c-138007CX6572-----------------------
  7795. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  7796.     AX = 8007h
  7797.     CX = 6572h
  7798.     DX = 1970h
  7799.     ES:BX -> request packet (see below)
  7800. Return: AX = 1965h if installed
  7801. SeeAlso: AH=80h,AX=8006h
  7802. Index:    uninstall;FAST!
  7803.  
  7804. Format of request packet:
  7805. Offset    Size    Description
  7806.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7807. --------c-1381--SI4358-----------------------
  7808. INT 13 - Super PC-Kwik v3.20+ - ???
  7809.     AH = 81h
  7810.     SI = 4358h
  7811.     ???
  7812. Return: ???
  7813. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7814.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7815.       to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  7816.     returns immediately in PC-Cache v5.x
  7817. Index:    PC-Cache|Qualitas Qcache
  7818. --------c-1382--SI4358-----------------------
  7819. INT 13 - Super PC-Kwik v3.20+ - ???
  7820.     AH = 82h
  7821.     SI = 4358h
  7822.     ???
  7823. Return: AL = ???
  7824. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7825.       Super PC-Kwik, and thus support this call
  7826. SeeAlso: AH=84h
  7827. Index:    PC-Cache|Qualitas Qcache
  7828. --------c-1383--SI4358-----------------------
  7829. INT 13 - Super PC-Kwik v3.20+ - ???
  7830.     AH = 83h
  7831.     SI = 4358h
  7832.     AL = ???
  7833.     ES:BX -> ???
  7834.     ???
  7835. Return: ???
  7836. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7837.       Super PC-Kwik, and thus support this call
  7838. SeeAlso: AH=85h
  7839. Index:    PC-Cache|Qualitas Qcache
  7840. --------c-1384--SI4358-----------------------
  7841. INT 13 - Super PC-Kwik v3.20+ - ???
  7842.     AH = 84h
  7843.     SI = 4358h
  7844.     AL = ???
  7845.     ???
  7846. Return: AL = ???
  7847. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7848.       Super PC-Kwik, and thus support this call
  7849. SeeAlso: AH=82h
  7850. Index:    PC-Cache|Qualitas Qcache
  7851. --------c-1385--SI4358-----------------------
  7852. INT 13 - Super PC-Kwik v3.20+ - ???
  7853.     AH = 85h
  7854.     SI = 4358h
  7855.     AL = ???
  7856.     DL = ???
  7857.     ???
  7858. Return: ???
  7859. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7860.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7861.       to PC-Kwik v3.20)
  7862. SeeAlso: AH=83h
  7863. Index:    PC-Cache|Qualitas Qcache
  7864. --------c-1386--SI4358-----------------------
  7865. INT 13 - Super PC-Kwik v4.00+ - ???
  7866.     AH = 86h
  7867.     SI = 4358h
  7868.     ???
  7869. Return: ???
  7870. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7871.       thus supports this call
  7872. Index:    Qualitas Qcache
  7873. --------c-1387--SI4358-----------------------
  7874. INT 13 - Super PC-Kwik v4.00+ - ???
  7875.     AH = 87h
  7876.     SI = 4358h
  7877.     ???
  7878. Return: AH = status??? (00h)
  7879.     CX = ???
  7880.     DX = ??? (0000h)
  7881. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7882.       thus supports this call
  7883. Index:    Qualitas Qcache
  7884. --------c-1388--SI4358-----------------------
  7885. INT 13 - Super PC-Kwik v4.00+ - ???
  7886.     AH = 88h
  7887.     SI = 4358h
  7888.     ???
  7889. Return: AH = status??? (00h)
  7890.     CX = ???
  7891.     DX = ??? (0000h)
  7892. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7893.       thus supports this call
  7894. Index:    Qualitas Qcache
  7895. --------c-1389--SI4358-----------------------
  7896. INT 13 - Super PC-Kwik v5.10+ - ???
  7897.     AH = 89h
  7898.     SI = 4358h
  7899.     ???
  7900. Return: ???
  7901. --------c-138A--SI4358-----------------------
  7902. INT 13 - Super PC-Kwik v5.10+ - ???
  7903.     AH = 8Ah
  7904.     SI = 4358h
  7905.     ???
  7906. Return: ???
  7907. --------c-138EED-----------------------------
  7908. INT 13 - HyperDisk v4.01+ - ???
  7909.     AX = 8EEDh
  7910.     ???
  7911. Return: ???
  7912. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  7913. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
  7914. --------c-138EEE-----------------------------
  7915. INT 13 - HyperDisk v4.01+ - ???
  7916.     AX = 8EEEh
  7917. Return: CF set
  7918.     AX = CS of HyperDisk resident code
  7919.     ???
  7920. Note:    identical to AX=8EEFh in HYPERDKX v4.21-4.30
  7921. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  7922. --------c-138EEF-----------------------------
  7923. INT 13 - HyperDisk v4.01+ - ???
  7924.     AX = 8EEFh
  7925. Return: CF set
  7926.     AX = CS of HyperDisk resident code
  7927.     ???
  7928. Note:    identical to AX=8EEEh in HYPERDKX v4.21-4.30
  7929. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  7930. --------c-1392--SI4358-----------------------
  7931. INT 13 - Super PC-Kwik v5.10+ - ???
  7932.     AH = 92h
  7933.     SI = 4358h
  7934.     ???
  7935. Return: AH = status??? (00h)
  7936.     DL = ???
  7937. SeeAlso: AH=93h
  7938. --------c-1393--SI4358-----------------------
  7939. INT 13 - Super PC-Kwik v5.10+ - ???
  7940.     AH = 93h
  7941.     SI = 4358h
  7942.     ???
  7943. Return: AH = status??? (00h)
  7944.     AL = ???
  7945. SeeAlso: AH=92h
  7946. --------c-1394--SI4358-----------------------
  7947. INT 13 - Super PC-Kwik v5.10+ - ???
  7948.     AH = 94h
  7949.     SI = 4358h
  7950.     ???
  7951. Return: ???
  7952. --------c-1395--SI4358-----------------------
  7953. INT 13 - Super PC-Kwik v5.10+ - ???
  7954.     AH = 95h
  7955.     SI = 4358h
  7956.     ???
  7957. Return: AH = status??? (00h)
  7958.     DX = ???
  7959. --------c-1396--SI4358-----------------------
  7960. INT 13 - Super PC-Kwik v5.10+ - ???
  7961.     AH = 96h
  7962.     SI = 4358h
  7963.     AL = ??? (01h)
  7964.     BX = ??? (0790h)
  7965.     DL = ???
  7966. Return: AH = status??? (00h)
  7967.     DX = ???
  7968. --------c-1397--SI4358-----------------------
  7969. INT 13 - Super PC-Kwik v5.10+ - ???
  7970.     AH = 97h
  7971.     SI = 4358h
  7972.     ???
  7973. Return: ???
  7974. --------c-1398--SI4358-----------------------
  7975. INT 13 - Super PC-Kwik v5.10+ - ???
  7976.     AH = 98h
  7977.     SI = 4358h
  7978.     ???
  7979. Return: ???
  7980. --------c-1399--SI4358-----------------------
  7981. INT 13 - Super PC-Kwik v5.10+ - ???
  7982.     AH = 99h
  7983.     SI = 4358h
  7984.     ???
  7985. Return: ???
  7986. --------c-139A--SI4358-----------------------
  7987. INT 13 - Super PC-Kwik v5.10+ - ???
  7988.     AH = 9Ah
  7989.     SI = 4358h
  7990.     ???
  7991. Return: ???
  7992. --------c-139B--SI4358-----------------------
  7993. INT 13 - Super PC-Kwik v5.10+ - ???
  7994.     AH = 9Bh
  7995.     SI = 4358h
  7996.     ???
  7997. Return: ???
  7998. --------c-139C--SI4358-----------------------
  7999. INT 13 - Super PC-Kwik v5.10+ - ???
  8000.     AH = 9Ch
  8001.     SI = 4358h
  8002.     ???
  8003. Return: ???
  8004. Note:    functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  8005.       other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  8006.       if a previous call is still in progress
  8007. --------c-139D--SI4358-----------------------
  8008. INT 13 - Super PC-Kwik v5.10+ - ???
  8009.     AH = 9Dh
  8010.     SI = 4358h
  8011.     ???
  8012. Return: ???
  8013. --------c-13A0--SI4358-----------------------
  8014. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  8015.     AH = A0h
  8016.     SI = 4358h
  8017. Return: AX = segment of resident code
  8018. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8019.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  8020.       corresponds to PC-Kwik v3.27)
  8021. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  8022. Index:    PC-Cache|Qualitas Qcache
  8023. --------c-13A1--SI4358-----------------------
  8024. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  8025.     AH = A1h
  8026.     SI = 4358h
  8027. Return: CF clear
  8028.     AH = 00h (v5.10)
  8029. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8030.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  8031.       corresponds to PC-Kwik v3.20)
  8032. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  8033. Index:    PC-Cache|Qualitas Qcache
  8034. --------c-13A2--SI4358-----------------------
  8035. INT 13 - Super PC-Kwik v3.20+ - ???
  8036.     AH = A2h
  8037.     SI = 4358h
  8038.     ???
  8039. Return: ???
  8040. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8041.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  8042.       corresponds to PC-Kwik v3.20)
  8043. Index:    PC-Cache|Qualitas Qcache
  8044. --------c-13A3--SI4358-----------------------
  8045. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  8046.     AH = A3h
  8047.     SI = 4358h
  8048. Return: CF clear
  8049. SeeAlso: AH=A4h
  8050. --------c-13A4--SI4358-----------------------
  8051. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  8052.     AH = A4h
  8053.     SI = 4358h
  8054. Return: CF clear
  8055. SeeAlso: AH=A3h
  8056. --------c-13A5--SI4358-----------------------
  8057. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  8058.     AH = A5h
  8059.     SI = 4358h
  8060. Return: AX = ???
  8061.     SI = ???
  8062. Notes:    called and used internally by Super PC-Kwik when a program terminates
  8063.       via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  8064.     this call is not supported by Qualitas Qcache 4.00
  8065. Index:    PC-Cache
  8066. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  8067. --------c-13A6--SI4358-----------------------
  8068. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  8069.     AH = A6h
  8070.     SI = 4358h
  8071.     DS:DX -> ASCIZ program name
  8072.     ES:BX -> EXEC data block (see INT 21/AH=4Bh)
  8073. Return: ???
  8074. Note:    called and used internally by Super PC-Kwik when a program is loaded
  8075.       with INT 21/AX=4B00h
  8076. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  8077. --------c-13A7--SI4358-----------------------
  8078. INT 13 CU - Super PC-Kwik 5.1 - ???
  8079.     AH = A7h
  8080.     SI = 4358h
  8081. Return: ???
  8082. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  8083. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  8084. --------v-13A759-----------------------------
  8085. INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
  8086.     AX = A759h
  8087. Return: AX = 59A7h if installed
  8088.         DX:BX -> ??? data
  8089. Program: SDRes is the resident portion of the Search&Destroy antiviral by
  8090.       Fifth Generation Systems, as bundled with Novell DOS 7
  8091. SeeAlso: INT 21/AH=0Eh/DL=ADh
  8092. --------c-13A8--SI4358-----------------------
  8093. INT 13 CU - Super PC-Kwik 5.1 - ???
  8094.     AH = A8h
  8095.     SI = 4358h
  8096. Return: ???
  8097. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  8098. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  8099. --------c-13A9--SI4358-----------------------
  8100. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  8101.     AH = A9h
  8102.     SI = 4358h
  8103. Return: ???
  8104. Note:    called and used internally by Super PC-Kwik when an application issues
  8105.       INT 21/AH=4Dh
  8106. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  8107. --------c-13AA--SI4358-----------------------
  8108. INT 13 - Super PC-Kwik v4+ - ???
  8109.     AH = AAh
  8110.     SI = 4358h
  8111.     ???
  8112. Return: ???
  8113. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8114.       this call
  8115. --------c-13AB--SI4358-----------------------
  8116. INT 13 - Super PC-Kwik v4+ - ???
  8117.     AH = ABh
  8118.     SI = 4358h
  8119.     ???
  8120. Return: ???
  8121. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8122.       this call
  8123. --------c-13AC--SI4358-----------------------
  8124. INT 13 - Super PC-Kwik v4+ - ???
  8125.     AH = ACh
  8126.     SI = 4358h
  8127.     ???
  8128. Return: ???
  8129. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8130.       this call
  8131. --------d-13AD-------------------------------
  8132. INT 13 - Priam HARD DISK CONTROLLER???
  8133.     AH = ADh
  8134.     ???
  8135. Return: ???
  8136. Note:    this call is made from Priam's EFMT.EXE (low-level formatter), probably
  8137.       to check the ROM type on the controller for their hard disk kits
  8138. SeeAlso: AH=70h
  8139. --------c-13AD--SI4358-----------------------
  8140. INT 13 - Super PC-Kwik v4+ - ???
  8141.     AH = ADh
  8142.     SI = 4358h
  8143.     ???
  8144. Return: ???
  8145. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8146.       this call
  8147. --------c-13AE--SI4358-----------------------
  8148. INT 13 - Super PC-Kwik v5.10+ - ???
  8149.     AH = AEh
  8150.     SI = 4358h
  8151.     ???
  8152. Return: ???
  8153. --------c-13B0--SI4358-----------------------
  8154. INT 13 - Super PC-Kwik v3.20+ - ???
  8155.     AH = B0h
  8156.     SI = 4358h
  8157.     ???
  8158. Return: ???
  8159. Note:    PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  8160.       supports this call; Qualitas Qcache does not support it
  8161. Index:    PC-Cache
  8162. --------d-13EE-------------------------------
  8163. INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
  8164.     AH = EEh
  8165.     DL = drive number (80h, 81h)
  8166. Return: CF clear
  8167.        AH = 00h
  8168. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8169. Desc:    the following INT 13 call will add 1024 to the specified cylinder
  8170.       number to get the actual cylinder number desired
  8171. Notes:    the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
  8172.     Disk Manager also supports these calls
  8173.     this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
  8174.       in order to allow caching of drives using SWBIOS to access more than
  8175.       1024 cylinders
  8176.     for software which supports that call, this function is equivalent to
  8177.       calling AH=EFh with CX=0400h
  8178. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
  8179. Index:    PC-Cache;huge disks|Disk Manager
  8180. --------c-13EF-------------------------------
  8181. INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
  8182.     AH = EFh
  8183.     CX = cylinder offset for next INT 13 call
  8184.     DL = drive number (80h, 81h)
  8185. Return: CF clear
  8186.         AH = 00h
  8187. Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
  8188.       IDE drives supporting the read multiple and write multiple commands
  8189. Desc:    the following INT 13 call will add the number given by this call to
  8190.       the specified cylinder to get the actual cylinder number, then reset
  8191.       the offset to zero
  8192. Note:    this function is also supported by the NOW! disk cache, and presumably
  8193.       newer versions of SWBIOS and Disk Manager
  8194.     for software which supports this call, AH=EEh is equivalent to calling
  8195.       this function with CX=0400h
  8196.     the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
  8197.       and AH=EFh
  8198. SeeAlso: AX=7B00h
  8199. --------d-13F9-------------------------------
  8200. INT 13 - SWBIOS - INSTALLATION CHECK
  8201.     AH = F9h
  8202.     DL = drive number (80h,81h)
  8203. Return: CF clear
  8204.         DX = configuration word
  8205.         bit 15 set if other SWBIOS extensions available
  8206.     CF set on error
  8207. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8208. Note:    Disk Manager also supports these calls
  8209. SeeAlso: AH=EEh
  8210. Index:    Disk Manager
  8211. --------v-13FA--DX5945-----------------------
  8212. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  8213.     AH = FAh
  8214.     DX = 5945h
  8215.     AL = function (00h-07h)
  8216. Return: varies by function
  8217.     if not installed:
  8218.         CF set
  8219.         AH = 01h
  8220. Note:    this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  8221.       so it is listed in its entirety under INT 16/AX=FA00h and following
  8222. SeeAlso: INT 16/AX=FA00h
  8223. --------d-13FE-------------------------------
  8224. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  8225.     AH = FEh
  8226.     DL = drive number (80h, 81h)
  8227. Return: CF clear
  8228.     DX = number of cylinders beyond 1024 on drive
  8229. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8230. Notes:    standard INT 13/AH=08h will return a cylinder count truncated to 1024
  8231.     BIOS without this extension would return count modulo 1024
  8232.     Disk Manager also supports these calls
  8233. SeeAlso: AH=EEh
  8234. --------U-13FFFFBHAA-------------------------
  8235. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  8236.     AX = FFFFh
  8237.     BH = AAh
  8238.     BL = subfunction
  8239.         00h installation check
  8240.         Return: AX = 1234h if installed
  8241.         01h turn on Turbo mode
  8242.         02h turn off Turbo mode
  8243.         03h set Turbo mode according to hardware switch
  8244.         04h set disk access to Turbo mode
  8245.         05h set disk access to Normal mode
  8246. SeeAlso: INT 15/AH=DFh
  8247. Index:    installation check;UNIQUE UX Turbo Utility
  8248. --------!------------------------------------
  8249.